0
我有一個表中列出了單個id的兩個或更多不同日期。我想合併一個ID的所有日期。示例代碼如下。在sql server中使用xml路徑合併字段,顯示逗號,其中NULL
create table number(id nvarchar(255), billdate nvarchar(255))
insert into number(id,billdate) values ('56465','12/10/2011'),('56465','02/11/2011'),
('46462','12/09/2009'),('46462','12/06/2010'),('32169','12/22/2009'),
('32169','12/31/2011'),('86835','12/10/2010'),('86835','22-Jan-2010'),
('65641',''),('65641','12-Aug-2009'),('22458','25-Aug-2007'),('22458','')
對於合併我使用XML路徑的行如下
select Main.id,LEFT(Main.billdate,nullif(LEN(Main.billdate)-1,-1)) as "billdate"
from (select distinct ST2.id,(SELECT ST1.billdate + ',' AS [text()]
from NUMBER ST1 where ST1.id=ST2.id ORDER BY ST1.id FOR XML PATH (''))billdate
from NUMBER ST2)[Main]
它可以正常使用這個樣本數據,但問題是我有大量的數據,而當我將此XML路徑如果日期爲NULL,則代碼逗號不會顯示,如ID 65641.對於我來說,在NULL位置顯示逗號很重要。我哪裏錯了?任何人都可以建議爲什麼它不顯示空位的逗號?