2016-07-14 8 views
0

Sql Union Command mit diesem Fehler "Msg 421, Level 16, State 1, Line 1 Der Bilddatentyp kann nicht als DISTINCT ausgewählt werden, da er nicht vergleichbar ist." , wenn ich versuche, diese AbfrageSql Command Union funktioniert nicht für Colum Type Bilder

Select Img from test_table Where userid = 3 
Union 
Select TOP 12 Img from MultiImages 

Bitte sagen Sie mir, wie man mit diesem Problem

+1

Brauchen Sie wirklich 'UNION' da? Müssen Sie wirklich doppelte Werte entfernen? Wenn nicht, wäre "UNION ALL" effizienter. –

+0

Danke Allot, jetzt funktioniert es gut mit Union All :) – Avais

Antwort

0

Sie haben zu überwinden, es zu konvertieren zuerst nvarchar. Sie haben nicht, welche Version von SQL erwähnt Sie verwenden aber für SQL Server 2005 und SQL Server 2008 (und höher) können Sie verwenden, um dies:

SELECT CAST([Img] AS NVARCHAR(MAX)) 
FROM test_table 
WHERE userid = 3 
UNION 
SELECT TOP 12 CAST([Img] AS NVARCHAR(MAX)) 
FROM MultiImages 

Else, wenn Sie SQL 2000 haben Sie nicht max verwenden können, so haben Sie um anzugeben, wie groß der varchar wäre

SELECT CAST([Img] AS NVARCHAR(4000)) 
    FROM test_table 
    WHERE userid = 3 
    UNION 
    SELECT TOP 12 CAST([Img] AS NVARCHAR(4000)) 
    FROM MultiImages 
+0

Msg 529, Ebene 16, Status 2, Zeile 2 Explizite Konvertierung von Datentyp Bild zu Nvarchar (max) ist nicht erlaubt. – Avais

+0

Welche Version verwenden Sie? – TheProvost

+0

SQL 2008 Microsoft SQL Server Management Studio \t \t \t \t \t \t 10.0.1600.22 – Avais