2012-03-21 31 views
0
Select myColumn, count(*) totalcount 
from myTable 
group by myColumn 
having count(*) >1 
order by count(*) desc; 

以下工作計數整數字段,但不適用於文本字段。我如何修改它以便它可以用於文本字段?計數文本字段T-SQL

感謝大家的幫助!

+2

想要按字段值「text」數據類型進行分組聽起來很不尋常。他們有什麼長度/類型的內容?還有SQL Server的版本? – 2012-03-21 18:13:10

+2

你的意思是文本數據類型或值? – gbn 2012-03-21 18:14:02

+0

你爲什麼說它不適用於文本字段?你有錯誤嗎?這對我來說似乎是完全有效的...... – 2012-03-21 18:14:50

回答

2

我猜你已經落後(或超前)空間這些都是修整值不同的值...

你的意思是文本值不是數據類型...

+0

我想你可能是對的。應該沒有愚蠢,但它是說有。必須是空格。 – wootscootinboogie 2012-03-21 18:16:15

+1

@DarrinCecil - 我仍然對實際感到困惑;數據類型。你是說你不會因'group by'錯誤而得到錯誤結果嗎?在你對Q的評論中,你指出你正在談論叫做'text'的數據類型。 – 2012-03-21 18:18:57

+0

@MartinSmith我得到了錯誤「文本,ntext和圖像數據類型無法進行比較或排序,除了使用IS NULL或LIKE運算符時」。我想我找到了我需要的答案。謝謝大家 :) – wootscootinboogie 2012-03-21 18:23:22

2

對於SQL Server 2005+,您可以:

SELECT CAST(myColumn AS NVARCHAR(MAX)), COUNT(*) totalcount 
    FROM myTable 
    GROUP BY CAST(myColumn AS NVARCHAR(MAX)) 
    HAVING COUNT(*) >1 
    ORDER BY COUNT(*) DESC;