1个表内的SQL连接列

时间:2015-07-16 09:13:42

标签: php mysql sql

我忙于编写显示交易的脚本。

我想编写一个SQL查询,将一切设置在一行上。

这是SQL:

SELECT transactienummer, code
FROM gb_kaarten 
ORDER BY transactienummer DESC
LIMIT 4

这是输出:

transactienummer code
43141            1600
43141            4410
43141            1513
43141            1514

我只想要一条看起来像这样的一行:

transactienummer code
43141            1600        4410         1513         1514

我尝试了一些连接,但我似乎没有得到它。

感谢正手帮助

3 个答案:

答案 0 :(得分:4)

我假设你使用的是mysql,你应该这样做:

SELECT transactienummer, GROUP_CONCAT(string SEPARATOR ' ') 
FROM gb_kaarten
GROUP BY code;

请注意,您将把所有结果放在由''

分隔的一个字段中

答案 1 :(得分:0)

DECLARE @col NVARCHAR(MAX);
SELECT @col = COALESCE(@col + char, '') +Code 
  FROM gb_kaarten

select transactienummer,@col 
from gb_kaarten
group by transactienummer

注意:它仅适用于一种常见类型

答案 2 :(得分:0)

您可以在下面的SO链接中找到这个

https://stackoverflow.com/a/6980/4701699

在你的情况下找到试试这个

SELECT distinct [transactienummer]
,(STUFF((SELECT CAST('   ' + Code AS VARCHAR(MAX)) 
     FROM Table
     WHERE (transactienummer= Table.transactienummer) 
     FOR XML PATH ('')), 1, 2, '')) AS Code
FROM Table

在小提琴http://sqlfiddle.com/#!6/f8339/1

中找到解决方案