在 SQL Server 中,可以使用 STUFF 和 FOR XML PATH 進(jìn)行多行合并成一行。例如,假設(shè)有一個(gè)表名為 orders ,其中包含訂單號(hào)和產(chǎn)品名稱:
order_id | product_name |
---|---|
1 | Product A |
1 | Product B |
2 | Product C |
2 | Product D |
以下查詢將在 order_id 列上分組,將產(chǎn)品名稱合并成一行:
SELECT order_id, STUFF((SELECT ', ' + product_name
FROM orders o2
WHERE o2.order_id = o1.order_id
FOR XML PATH('')), 1, 2, '') AS products
FROM orders o1
GROUP BY order_id
結(jié)果如下所示:文章來源:http://www.zghlxwxcb.cn/news/detail-776526.html
order_id | products |
---|---|
1 | Product A, Product B |
2 | Product C, Product D |
在STUFF函數(shù)中,第一個(gè)參數(shù)指定要插入的位置,第二個(gè)參數(shù)指定要從第一個(gè)參數(shù)指定的位置開始刪除的字符數(shù),第三個(gè)參數(shù)指定要插入的新值。在此查詢中,使用 FOR XML PATH 將每個(gè)產(chǎn)品名稱轉(zhuǎn)換為逗號(hào)分隔的字符串,然后使用 STUFF 將第一個(gè)逗號(hào)刪除并將所有產(chǎn)品名稱合并成一個(gè)字符串。最后,使用 GROUP BY 在 order_id 列的基礎(chǔ)上進(jìn)行分組。文章來源地址http://www.zghlxwxcb.cn/news/detail-776526.html
到了這里,關(guān)于sql server 多行數(shù)據(jù)合并一行顯示的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!