SQL Server. Трансформация таблицы в строку

Функция as_agg позволяет быстро превратить табличные данные в единую строку, созданную путем конкатерации всех строк таблицы.

Создаем функцию: 

Create or ALTER FUNCTION [dbo].[as_agg]
(
    @t ExtendedDictionaryParameter readonly
)
RETURNS Nvarchar(max)
AS
BEGIN
 declare @res nvarchar(max)
  SELECT @res =   STUFF(
                (	
                    SELECT COALESCE(value2, value, '')
                    FROM  @t                  		
                    FOR XML PATH(''), TYPE 
               ).value('.','nvarchar(max)') 
               ,1,0, '' 
          )
	return @res
END

Используем ее: 

declare @t ExtendedDictionaryParameter 
insert @t (Value2)
select top 3 '' +  code + '' from as_trace

select [dbo].[as_agg](@t)

Примечание: 

1. Обработка корректно работает и для HTML разметки. 

2. Используется стандартный тип для Falcon Space ExtendedDictionaryParameter, состоящий из Key, Value, Value2. В данном примере используется только поле Value2.

CREATE TYPE [dbo].[ExtendedDictionaryParameter] AS TABLE(
	[Key] [nvarchar](32) NULL,
	[Value] [nvarchar](512) NULL,
	[Title] [nvarchar](1024) NULL,
	[Value2] [nvarchar](max) NULL
)
GO

Альтернативный вариант - в запросе через STUFF: 

 set @temp =   STUFF((	
    SELECT  '<article class="bla-item card mb-3">'+name+'</article>'
    FROM  table1                   	
 FOR XML PATH(''), TYPE).value('.','nvarchar(max)') ,1,0, '')

Насколько полезной была статья?

Что еще посмотреть по SQL Server

SQL. Как работать с датами в SQL Server

SQL Server. Как переносить на новую строку в строковой переменной в SQL

SQL. Вывод разметки HTML в сыром виде (в виде тегов) в SQL

SQL. Как привести дату в строку в нужный формат в SQL Server

SQL. Как использовать select from Хранимка

SQL. Как прописью написать число в SQL

SQL. Как массово залить данные в таблицу БД через CSV (Excel)

SQL. Как перенести сложный тип данных на другую базу

SQL. Как перевести дату JS в дату SQL

SQL. Как выводить окончание у множественного числа (5 заказОВ, 3 заказА)

Настройка полнотекстового поиска fulltext search в SQL Server

Как занести тестовые данные в таблицу SQL Server

Разработчик SQL, нужны клиенты и заказы?

Прямые заказы от клиентов. Нужно знать только SQL и HTML
Работа на MS SQL Server

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK