2016-04-20 3 views
0

У меня есть запрос SQL, которые приводят меня 7 рядов под одной колонке т.е. «COMPONENT» таким образом:Выберите конкретные значения столбцов в SQL Server

D-SAND 
10 MM 
20 MM 
MSRC 
SRC 
WATER 
SP 607 

Я хочу, чтобы выбрать все эти компоненты в 1 строку и просто отображение в одном отчете каждый раз .... Есть ли какое-либо обходное решение для этого, пожалуйста, помогите.

D-SAND 10 MM 20 MM MSRC SRC WATER SP 607 
+1

Возможный дубликат [Объединить множество строк в одной текстовой строки?] (Http://stackoverflow.com/questions/194852/concatenate-many-rows-into-a-single-text-string) –

ответ

0

FOR XML PATH('') Чтобы получить желаемый результат, вы можете использовать FOR XML PATH('').

SELECT LEFT(x.COMP.value('.', 'NVARCHAR(MAX)'), LEN(x.COMP.value('.', 'NVARCHAR(MAX)')) -1) as COMPONENT 
FROM 
(
    SELECT COMPONENT+', ' 
    FROM yourTable 
    FOR XML PATH(''), TYPE 
) x(COMP); 
+0

Я никогда не видел, чтобы это было написано до @irakliG, впечатляющее использование XQUERY :) Я лично предпочитаю 'STUFF' хотя ' SELECT STUFF ((SELECT ',' + COMPONENTS FROM [yourTable] FOR XML PATH ('')) , 1, 2, ''); – Shaneis

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