2016-07-14 8 views
0

Sql Unionコマンドこのエラーを返す "メッセージ421、レベル16、状態1、行1 イメージデータ型は比較できないため、DISTINCTとして選択できません。 私はこのクエリにSqlコマンド連合はColum型イメージでは機能しません

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

をしようとしていますあなたが最初NVARCHARに変換する必要がどのようにこの問題

+1

「UNION」が本当に必要ですか?本当に重複した値を削除する必要がありますか?もしそうでなければ、 'UNION ALL'がより効率的になります。 –

+0

ありがとうAllot、今、それは正常にすべてのユニオンで動作します。 – Avais

答えて

0

を克服するために教えてください。あなたはSQL 2000を持っている場合、あなたが持っているので、あなたは最大を使用することはできません

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

:あなたが使用しているSQLのバージョンを述べたが、SQL Server 2005およびSQL Server 2008(およびそれ以降)のために、あなたはこれを使用することができていませんvarcharの大きさを指定する例

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

メッセージ529、レベル16、状態2、行2 明示的なデータ型のイメージからnvarchar(max)への変換は許可されていません。 – Avais

+0

あなたはどのバージョンを使用していますか? – TheProvost

+0

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

関連する問題