2016-04-17 5 views
0

Ist es möglich, basierend auf den passenden Mustern zu gruppieren?Ist es möglich, mit einigen übereinstimmenden Mustern in SQL Server 2008 zu gruppieren

Aus der Abfrage hier gezeigt, ich erhalte eine Fehlermeldung

Der Text, Ntext und Typen von Bilddaten können nicht verglichen oder sortiert werden, außer wenn NULL oder LIKE-Operator IS.

Abfrage:

SELECT 
    <colname>,sum(<colname>) 
FROM 
    #TempTable 
GROUP BY 
    CASE 
     WHEN 
      <colname> like '%abc%' then 'abc' 
      <colname> like '%efg%' then 'efg' 
    END 

Mein erwartetes Ergebnis ist:

abc 2 
efg 4. 
+0

Was ist die Art von 'colname'? –

+0

Die Datentypen 'ntext',' text' und 'image' werden in einer zukünftigen Version von SQL Server entfernt. Vermeiden Sie die Verwendung dieser Datentypen in neuen Entwicklungsarbeiten, und planen Sie, Anwendungen zu ändern, die sie derzeit verwenden. Verwenden Sie stattdessen 'nvarchar (max)', 'varchar (max)' und 'varbinary (max)'. [Siehe Details hier] (http://msdn.microsoft.com/en-us/library/ms187993.aspx) –

Antwort

0

Danke alle für die schnellen reply.Looks wie ich das bekam answer.let mich mehr in diesen aussehen :)

SELECT CAST(<colname> AS NVARCHAR(100)) <colname>, 
     COUNT(CAST(<colname> AS NVARCHAR(100))) AS NumOccurrences 
FROM <tablename> 
GROUP BY CAST(<colname> AS NVARCHAR(100)) 
HAVING COUNT(CAST(<colname> AS NVARCHAR(100))) > 1 

Ref: The text, ntext, and image data > types cannot be compared or sorted, except when using IS NULL or LIKE > operator

+1

Wie beantwortet das Ihre Frage? –

-1

Dieser funktioniert mit ROLLUP

SELECT coalesce(CAST(<colname> AS NVARCHAR(100)),'GrantTotal') <colname>, 
     COUNT(CAST(<colname> AS NVARCHAR(100))) AS NumOccurrences 
FROM <tablename> 
GROUP BY CAST(<colname> AS NVARCHAR(100)) with ROLLUP 
HAVING COUNT(CAST(<colname> AS NVARCHAR(100))) > 1 
Verwandte Themen