[紧急求救]如何用SUM()对nvarchar类型的数据进行统计(在线等待)?

维她奶 2003-12-02 11:26:17
希望各位大佬快点回答小弟的问题呀!
...全文
447 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-12-02
  • 打赏
  • 举报
回复
--下面是例子
declare @t table(a nvarchar(10))
insert into @t
select '12'
union all select '234'
union all select '24'
union all select '34'
union all select '27'
union all select '2a' --这个是不能转换成数字的


select sum(case when isnumeric(a)=1 then cast(a as decimal(38,2)) else 0 end) from @t

--测试结果:331.00
维她奶 2003-12-02
  • 打赏
  • 举报
回复
不好意思,我没有刷新,呵…………谢谢个位啦,马上结帖!
zjcxc 元老 2003-12-02
  • 打赏
  • 举报
回复
上面不是写了吗?
zjcxc 元老 2003-12-02
  • 打赏
  • 举报
回复
上面这个主要是考虑了你的字段中,可能有不能转换成数字的情况,所以用了

isnumeric(字段)=1 来判断
维她奶 2003-12-02
  • 打赏
  • 举报
回复
如何将存储在nvarchar类型字段里的数据求和呀?

先谢过各位兄弟拉
zjcxc 元老 2003-12-02
  • 打赏
  • 举报
回复
转换成数字型再求和就行了.

--
select sum(case when isnumeric(字段)=1 then cast(字段 as decimal(38,2)) else 0 end) from 表
lvltt 2003-12-02
  • 打赏
  • 举报
回复
CAST 和 CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。

语法
使用 CAST:

CAST ( expression AS data_type )

使用 CONVERT:

CONVERT (data_type[(length)], expression [, style])
楼上的就行。。。
lansquenet 2003-12-02
  • 打赏
  • 举报
回复
select sum(cast(字段 as float)) a from table
lansquenet 2003-12-02
  • 打赏
  • 举报
回复
select sum(cast(字段 as int)) a from table

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧