Записи, разделенные одной строкой, в результате запроса SQL SERVER - PullRequest
2 голосов
/ 06 июня 2011

У меня был запрос, который возвратил несколько строк из таблицы. Затем я преобразовал этот запрос в этот:

;with mycte as 
(select s.FirstName + ' ' + s.LastName as Name from ClientStaff cs 
left outer join Staff s on s.Id = cs.StaffId 
left outer join GeneralStatus gs on gs.Id = s.StatusId
 where cs.ClientId = @clientId and gs.Name = 'Active')

 select @staff = (select distinct staff = REPLACE(REPLACE(REPLACE((select Name AS [data()] FROM mycte a 
 order by a.Name for xml path),'</row><row>',', '),'</row>',''),'<row>','') from mycte b)

Возвращает эти строки в одной строке через запятую. Теперь я не хочу значения, разделенные запятыми, вместо этого я хочу значения, разделенные одной строкой. Может кто-нибудь сказать мне, если это возможно или нет?

Заранее спасибо.

1 Ответ

3 голосов
/ 06 июня 2011
declare @staff varchar(max)

;with mycte as 
(
    select distinct s.FirstName + ' ' + s.LastName as Name 
    from ClientStaff cs 
        left outer join Staff s on 
            s.Id = cs.StaffId 
        left outer join GeneralStatus gs on 
        gs.Id = s.StatusId
    where cs.ClientId = @clientId and gs.Name = 'Active'
)
select @staff = isnull(@staff + char(13), '') + Name
from mycte b

print @staff
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...