我有这个表:T:
丁:
我想要做的是在一个单元格(合并单元格)中获取每个s_id
它的所有符号(DBSymbol
)。
我找到了本教程,这是我的代码:
select T.s_id,
(select '; ' + D.symbol
from D
where T.D_b_id = D.id
FOR XML PATH('')) [DBSymbol]
from T
但这是我得到的:
怎么了??
我有这个表:T:
丁:
我想要做的是在一个单元格(合并单元格)中获取每个s_id
它的所有符号(DBSymbol
)。
我找到了本教程,这是我的代码:
select T.s_id,
(select '; ' + D.symbol
from D
where T.D_b_id = D.id
FOR XML PATH('')) [DBSymbol]
from T
但这是我得到的:
怎么了??
尝试这个 -
SELECT t1.s_id,
STUFF(
(SELECT '; ' + symbol AS [text()]
FROM (
SELECT t.s_id,
d.symbol
FROM T
INNER JOIN D ON T.d_b_id = D.id
WHERE t.s_id = t1.s_id
) x
FOR XML PATH('')
), 1, 1, '')
FROM T t1
GROUP BY t1.s_id
检查它:SQL Fiddle
select DISTINCT T.s_id,
Stuff((SELECT DISTINCT '; ' + D.symbol
from D
--where T.D_b_id = D.id
FOR XML PATH('')),1,1,'') [DBSymbol]
from T
这里的例子