select count(category) from list where category like 'action'
上面是我想要运行的查询。但是,当我运行该查询时,我得到了
数据类型错误。
有count()
的替代方法吗?或者...我如何使用count()
方法
当数据类型是文本?
答案 0 :(得分:2)
您无法在text,ntext,image数据类型上应用COUNT()函数。
为什么你不能使用:
select count(*) from list where category like 'action'
?你有一些空吗?
如果您不必排除空值,则上述查询可能已经正常运行...
答案 1 :(得分:2)
要回答未来googlers标题中的问题,您可以使用
SELECT COUNT(CASE
WHEN some_text_column IS NOT NULL THEN 1
END)
FROM some_table
在您的情况下(正如@hvd的评论中指出的那样),WHERE category LIKE 'action'
谓词可确保排除任何NULL
值,因此可以安全地将其替换为{ {1}}
此外,您几乎肯定不应该使用COUNT(*)
数据类型。这是一种不推荐使用的数据类型,用于保存超过8000字节的LOB(大对象)数据。
像“动作”这样的字符串肯定不适合这种描述!
答案 2 :(得分:-1)
count()
始终返回int
类似的内容。
使用int
访问者读取结果数据:例如。 getInt(1)