在Pervasive SQL 11中透视表

时间:2012-04-17 08:12:55

标签: sql pervasive

我查看了类似的主题并尝试了一些自我加入,但无法理解如何申请。

在Pervasive SQL 11中有这样的表:

kit|part

1 | 21

1 | 22

1 | 23

1 | 24

2 | 30

2 | 31   
....

想要在一行中返回

1 | 21 | 22 | 23 | 24

2 | 30 | 31

相关部件的数量从1到30+不等,每件套件只能返回1行

实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

不需要自我加入,只需要一个GROUP BY(假设MySQL)GROUP_CONCAT

SELECT kit, GROUP_CONCAT(part)
FROM table
GROUP BY kit

您可以选择订购,或添加分隔符:

SELECT kit, GROUP_CONCAT(DISTINCT part ORDER BY part ASC SEPARATOR ' ')
FROM table
GROUP BY kit

但是,如果您希望将结果放在单独的列中,则无法在MySQL中编写动态自联接,这会自动加入足够的时间来拥有所有表,并且MySQL不支持枢轴。其他(R)DBMS可能会。