Объединение строк в TSQL

select T1.Field1, coalesce(
					 stuff(
					   (select ',' + cast([Field1] as nvarchar(20)) as [text()]
						from Table2 T2
						where T2.Field2 = T1.Field2
						order by [Field1]
						for xml path(''), type).value('.','nvarchar(max)'),
						1,1,''),
						'') as [ConcatField2]
from T1

COALESCE – возвращает пустую строку, если объединение строк вернуло NULL;
Функция STUFF удаляет первый символ из строки – запятую;
PATH(”) означает, что при формировании строки не будут использованы XML-теги;
type – функция вернет XML, который будет конвертироваться в текст методом ‘value’ (это делается для того, чтобы сохранить символы, которые в противном случае были бы восприняты как элементы XML разметки;
метод value() – берет корневой элемент ‘.’ и конвертирует его в текст ‘nvarchar(max)’

Ссылки:
Различные методики объединения строк в TSQL
Синтакс FOR XML

Запись опубликована в рубрике TSQL с метками . Добавьте в закладки постоянную ссылку.

3 Responses to Объединение строк в TSQL

  1. wanchai hotel пишет:

    very care about my situation.

  2. Online selling пишет:

    s services are wondeful!

Добавить комментарий для Online selling Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *