SQL-操作数数据类型varchar对于sum运算符无效

SQL-操作数数据类型varchar对于sum运算符无效,sql,sql-server,tsql,Sql,Sql Server,Tsql,我正在运行以下查询,获取的操作数数据类型varchar对于sum运算符错误无效。accountnature字段是一个varchar字段,但是我将其转换为INT,并且仍然得到错误 SELECT 'Qualified' =sum(case when (cast(AccountNature AS Int)) in ('a','b') then '1' end) from agreement group by accountnature 有没有想过我做错了什么,或者如何修复? 谢谢。试试这

我正在运行以下查询,获取的操作数数据类型varchar对于sum运算符错误无效。accountnature字段是一个varchar字段,但是我将其转换为INT,并且仍然得到错误

SELECT
    'Qualified' =sum(case when (cast(AccountNature AS Int)) in ('a','b') then '1' end)

from agreement

group by accountnature
有没有想过我做错了什么,或者如何修复? 谢谢。

试试这个:

SELECT
    'Qualified' = sum(case when AccountNature in ('a','b') then 1 ELSE 0 end)
from agreement
group by accountnature
试试这个:

select [qualified] = sum(case when AccountNature in ('a','b') then 1 else 0 end)
from agreement

您不需要将其强制转换为整数,因为您正在将其与字符进行比较。

根据我所知,如果特定列具有类似于1,2,3,。。。。。。这是可以做到的。但是如果像a,b,c这样的值…cast不能做到,我想ware是cast函数this@RajaYuvi-没有必要使用cast。是的,我试过了,但它不起作用,这就是为什么我去选演员,但我认为你给我指出了正确的方向。我有一个关于“1”的单引号。我刚刚删除了它,它就可以工作了。如果要与varchar值进行比较,为什么需要将值强制转换为。所以不需要转换。