在同一张表中进行SQL列连接

3

我正在编写一个显示交易的脚本。

我想编写一个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

我已经尝试了一些连接,但是我好像还没有理解它。

感谢您的帮助!


这是什么类型的SQL?MySQL吗? - Abdo Adel
是的,非常抱歉我没有在问题中提到这一点。 - Joop Schoolse
3个回答

4

我假设您正在使用mysql,您应该这样做:

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

请注意,您将在一个字段中获得所有结果,由''分隔。

1
如果他没有使用MySQL呢:D,不管怎样这是一个有价值的答案。 - Abdo Adel

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

select transactienummer,@col 
from gb_kaarten
group by transactienummer

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


0
你可以在下面的SO链接中找到这个。

https://dev59.com/T3VD5IYBdhLWcg3wWaRh#6980

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

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

在Fiddle中找到解决方案http://sqlfiddle.com/#!6/f8339/1


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接