select count(category) from list where category like 'action'
上面是我想运行的查询。但是,当我运行该查询时,出现数据类型错误 。
有没有其他方法count()
?或...如何在数据类型为文本时使用count()
方法
?(sql)数据类型为文本时,如何使用count()方法?
select count(category) from list where category like 'action'
上面是我想运行的查询。但是,当我运行该查询时,出现数据类型错误 。
有没有其他方法count()
?或...如何在数据类型为文本时使用count()
方法
?(sql)数据类型为文本时,如何使用count()方法?
count()
总是返回int
喜欢的类型。
用int
读取结果数据存取:例如: getInt(1)
要回答在标题为未来的Google的问题,您可以使用
SELECT COUNT(CASE
WHEN some_text_column IS NOT NULL THEN 1
END)
FROM some_table
在你的情况,但(如通过@hvd在评论中指出)的WHERE category LIKE 'action'
谓词确保任何NULL
值将被排除在外无论如何,所以它是安全的替换它COUNT(*)
此外,你几乎肯定不应该使用text
数据类型为此。这是一个不赞成使用的数据类型,用于保存超过8000字节的LOB(大对象)数据。
像“行动”的字符串绝对不符合这个描述!
这是一个不好的例子:如果'category LIKE'action'',那么'category IS NOT NULL',所以它的意图行为不是'COUNT(*)'的行为,而是'COUNT )'(如果它是有效的)和'COUNT(*)'具有相同的效果。 – hvd 2011-12-26 12:30:02
@ hvd - 好点!同意。 – 2011-12-26 12:30:53
你正在收到什么确切的错误信息? – TetonSig 2011-12-26 09:38:28
'category'是什么类型?我敢打赌,这不是一个字符串。 – Oded 2011-12-26 09:39:32
如果category是一个varchar/nvarchar字段,这个查询应该可以工作吗?你确定它是正确的数据类型吗? – TheBoyan 2011-12-26 09:40:54