将所有选定的列合并为一列

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 |