当我跑步时
SELECT SUM(CASE column1 WHEN 'sometext' THEN 1 ELSE 0 END)
FROM table1
我收到以下错误:
数据类型text和varchar在等于运算符中不兼容。
该列是数据类型text
所以我尝试了以下但是得到了同样的错误。有什么想法吗?
SELECT SUM(CASE column1 WHEN CAST('sometext' AS VARCHAR (40)) THEN 1 ELSE 0 END)
FROM table1
答案 0 :(得分:0)
这个有效:
select sum(case when cast(column1 as varchar(max)) = 'sometext' then 1 else 0 end)
from table1
<强> sql fiddle demo 强>
答案 1 :(得分:0)
您必须将该列与值进行比较,如果该列不是varchar或ntext,则必须转换数据类型,否则无需输入类型,您只需使用,
select sum(case when column1 = 'sometext' then 1 else 0 end)
from table1
如果column1不是string,那么可以使用
select sum(case when cast(column1 as varchar(max)) = 'sometext' then 1 else 0 end)
from table1
如果column1是ntext,那么你可以使用
select sum(case when cast(column1 as nvarchar(max)) = N'sometext' then 1 else 0 end)
from table1
您也可以在此处查看此答案:http://techsharehub.blogspot.com/2013/09/compare-string-int-and-ntext-with.html