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