Я хочу выбрать набор данных в одну строку, но я все же хочу, чтобы каждый элемент был на его собственной строке (я тогда поставлю его в Crystal Reports, и он будет быстрее, чем использование тонны вложенных отчетов.)SQL Server - как объединить строку и добавить строки?
Итак, у меня есть следующие данные:
ID Assessor
1 Black
1 Jones
и я хочу, чтобы запросить его и возвращает одну строку, которая выглядит как:
Black
Jones
если я избранная с помощью COALESCE, я могу сделать он разделен запятой или точкой с запятой, но не ограничивается линией:
BEGIN
declare @Assessors NVarChar(max)
Declare @LineFeed varchar(10)
DECLARE @Return varchar(10)
Set @LineFeed = char(10)
SET @Return = char(13)
Select @Assessors = COALESCE(@Assessors + ', ', '') + a.Assessor
FROM dbo.Assessment a
Where (@ID = a.ID)
Return @Assessors
END
В этом случае функция вернет «Черный, Джонс». Но если бы я изменить строку
Select @Assessors = COALESCE(@Assessors + @Return + @LineFeed, '') + a.Assessor
возвращается «Черный Джонс» - это не ставит в символ новой строки или возврата, просто пространство.
Я думаю, мне не нужно использовать Coalesce, но я пробовал только стандартное конкатенирование, и это тоже не поместится. Я имею это в функции прямо сейчас, но планирую положить его как часть хранимой процедуры, так что это быстрее.
+1. Это напоминает мне о старых временах манипуляции с VB :-) – 2010-12-09 18:39:11