Проблема конкатата строки SQL Server для SQL Server 2000 - PullRequest
0 голосов
/ 12 марта 2012

Я пытался объединить значения через запятую, когда буду использовать group by.Поэтому я использую функцию STUFF() и предложение for xml path('').Вот мой сценарий

IF EXISTS 
( 
 SELECT * 
 FROM tempdb.dbo.sysobjects 
 WHERE ID = OBJECT_ID(N'tempdb..#tmp1') 
) 
BEGIN 
 DROP TABLE #tmp1 
END 

create table #tmp1
(ID  varchar(2),CName varchar(20) )

insert into #tmp1(ID,CName) values ('A','BBA Reman')
insert into #tmp1(ID,CName) values ('B','BBA Reman')
insert into #tmp1(ID,CName) values ('C','CT Tech')
insert into #tmp1(ID,CName) values ('D','CT Tech')

select
t1.CName,
stuff((
    select ',' + t.ID
    from #tmp1 t
    where t.CName = t1.CName
    order by t.ID
    for xml path('')
),1,1,'') as ConCatStr
from #tmp1 t1
group by t1.CName

Вышеуказанный сценарий успешно работает в SQL Server 2005, но не работает в SQL Server 2000. Так что скажите мне, как реструктурировать мой сценарий, в результате он также должен работать в SQL Server 2000.

1 Ответ

1 голос
/ 12 марта 2012

Есть много способов создать список через запятую без использования xml, взгляните на следующее:

http://www.simple -talk.com / sql / t-sql-программирования/ конкатенации-строки-значения-в-Transact-SQL /

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