我想将植物列中的数据连接到项目列中。下面的代码可以完美地连接位置列,但我不知道如何对多列数据应用连接。
农场餐桌
身份证 | 项目 | 植物名称 | 地点 |
---|---|---|---|
1 | 苹果 | 海棠属 | C座 |
2 | 咖啡 | 咖啡 | A区 |
3 | 咖啡 | 咖啡 | B区 |
4 | 苹果 | 海棠属 | B区 |
SELECT
Item,
Botanical,
STUFF(
(SELECT DISTINCT ', ' + Location
FROM farmtable
WHERE Item = a.Item
FOR XML PATH (''))
, 1, 1, '') AS URLList
FROM farmtable AS a
GROUP BY Item, Botanical
预期结果
身份证 | 项目 | 地点 |
---|---|---|
1 | 苹果、海棠属 | C区、B区 |
2 | 咖啡,咖啡 | A区、B区 |
您可以更新代码并使用
CONCAT(item, ' ', Botanical)
。
SELECT
CONCAT(item, ' ', Botanical) AS Item,
STUFF(
(SELECT DISTINCT ', ' + Location
FROM @tt
WHERE CONCAT(item, ' ', Botanical) = CONCAT(a.item, ' ', a.Botanical)
FOR XML PATH (''))
, 1, 1, '') AS URLList
FROM @tt AS a
GROUP BY CONCAT(item, ' ', Botanical)