2016-07-14 2 views
0

Команда Sql Union, указав эту ошибку «Msg 421, Level 16, State 1, Line 1 Тип данных изображения не может быть выбран как DISTINCT, потому что он не сопоставим». , когда я пытаюсь этот запросSql Command Union не работает для изображений Colum Type

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

Пожалуйста, скажите мне, как преодолеть эту проблему

+1

Вам действительно нужно «СОЮЗ»? Вам действительно нужно удалить повторяющиеся значения? Если нет, «UNION ALL» будет более эффективным. –

+0

Спасибо Allot, теперь он отлично работает с Union All :) – Avais

ответ

0

Вы должны преобразовать его в NVARCHAR первым. Вы не упомянули, что версия SQL используется, но для SQL Server 2005 и SQL Server 2008 (и позже), вы можете использовать это:

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

Иначе, если у вас есть SQL 2000 вы не можете использовать макс так у вас есть указать, насколько велика будет варчар, например

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, уровень 16, состояние 2, строка 2 Явное преобразование изображения типа данных в nvarchar (max) не допускается. – Avais

+0

Какую версию вы используете? – TheProvost

+0

SQL 2008 Управление Microsoft SQL Server Studio \t \t \t \t \t \t 10.0.1600.22 – Avais

 Смежные вопросы

  • Нет связанных вопросов^_^