将所有选定的列合并为一列
Combine all selected columns to one column
我 运行 无法在下面合并 table。请协助。谢谢
InvoiceNo FileNo
00001 A001
00002 A001
上面是我select的table,我想在列表中显示的如下。
InvoiceNo FileNo
00001,00002 A001
非常感谢您的帮助!
如果mysql 则使用group_concat函数
SELECT FileNo,GROUP_CONCAT(InvoiceNo) as InvoiceNo
FROM your_table
GROUP BY FileNo;
Sql-服务器版本
你可以使用STUFF
功能。
SELECT STUFF((
SELECT ',' + InvoiceNo
FROM T
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') as 'InvoiceNo' ,FileNo
FROM T
GROUP BY FileNo
sqlfiddle:http://sqlfiddle.com/#!18/5028e/8
Oracle 版本
你可以使用LISTAGG
功能。
SELECT
LISTAGG(InvoiceNo, ', ') WITHIN GROUP (ORDER BY InvoiceNo) InvoiceNo,
FileNo
FROM t
GROUP BY FileNo
http://sqlfiddle.com/#!4/5028e/2
[结果]:
| INVOICENO | FILENO |
|--------------|--------|
| 00001, 00002 | A001 |
我 运行 无法在下面合并 table。请协助。谢谢
InvoiceNo FileNo
00001 A001
00002 A001
上面是我select的table,我想在列表中显示的如下。
InvoiceNo FileNo
00001,00002 A001
非常感谢您的帮助!
如果mysql 则使用group_concat函数
SELECT FileNo,GROUP_CONCAT(InvoiceNo) as InvoiceNo
FROM your_table
GROUP BY FileNo;
Sql-服务器版本
你可以使用STUFF
功能。
SELECT STUFF((
SELECT ',' + InvoiceNo
FROM T
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') as 'InvoiceNo' ,FileNo
FROM T
GROUP BY FileNo
sqlfiddle:http://sqlfiddle.com/#!18/5028e/8
Oracle 版本
你可以使用LISTAGG
功能。
SELECT
LISTAGG(InvoiceNo, ', ') WITHIN GROUP (ORDER BY InvoiceNo) InvoiceNo,
FileNo
FROM t
GROUP BY FileNo
http://sqlfiddle.com/#!4/5028e/2
[结果]:
| INVOICENO | FILENO |
|--------------|--------|
| 00001, 00002 | A001 |