Sql 在字段中联接值
我有个问题 我需要将列的值连接到一个字段中,用分号分隔。 我使用XML路径,但响应时间很长 这是我的桌子:Sql 在字段中联接值,sql,sql-server-2008,tsql,group-concat,Sql,Sql Server 2008,Tsql,Group Concat,我有个问题 我需要将列的值连接到一个字段中,用分号分隔。 我使用XML路径,但响应时间很长 这是我的桌子: ID COLOR 1 WHITE 1 RED 2 BLACK 2 RED 这就是我需要输出的内容: ID COLORS 1 WHITE; RED 2 BLACK; RED 我怎么做 实际上,我的代码是: SELECT * FROM Client A OUTER APPLY (SELECT Origen + '; ' FR
ID COLOR
1 WHITE
1 RED
2 BLACK
2 RED
这就是我需要输出的内容:
ID COLORS
1 WHITE; RED
2 BLACK; RED
我怎么做
实际上,我的代码是:
SELECT *
FROM
Client A
OUTER APPLY (SELECT Origen + '; '
FROM ( SELECT DISTINCT F.IdSC, C.Origen
FROM SC F
LEFT JOIN OrigenSC B ON F.IdSC = B.IdSC
LEFT JOIN Origen C ON B.IdOrigen = C.IdOrigen
) D
WHERE D.Id = A.IdSC
ORDER BY D.Origen
FOR XML PATH('')) H (Origen)
鉴于上述颜色示例,您可以尝试以下内容:
create table Colors
(
ID INT,
COLOR varchar(32)
)
INSERT INTO Colors values(1, 'WHITE')
INSERT INTO Colors values(1, 'RED')
INSERT INTO Colors values(2, 'BLACK')
INSERT INTO Colors values(2, 'RED')
INSERT INTO Colors values(3, 'GREEN')
INSERT INTO Colors values(3, 'RED')
WITH UniqueColors AS ( SELECT DISTINCT ID FROM Colors )
SELECT
ID,
STUFF(
( SELECT '; '+COLOR
FROM Colors
WHERE ID = UniqueColors.ID
FOR XML PATH('')
)
, 1, 2, ''
) AS [ColorList]
FROM UniqueColors
这是从其他一些例子中得到的 在此网站上搜索SQL Pivot。向我们显示您迄今为止尝试的代码。这是此问题的重复:@Oded这不是Pivot查询。它正在模拟GROUP_CONCAT@Longha显示您缓慢的XML路径查询。还有,您的表上有哪些索引?正如@MartinSmith在上面所问的,您能显示您的索引吗?