数据表将来自不同列的数据组合成单行

时间:2018-05-11 11:45:20

标签: sql database merge rows

参考下图,如何将所有章节合并为一行不同的页码?

enter image description here

e.g。
第1页有3行,因为在chp 8,9,10的列上有3个数据 第2页有5行,因为在chp 8,9,1,11,12

列的列中有5个数据

所以 如何将每个页码的一行和所有数据放在他们自己的chp上?

基本SQL如下:

identifier [constant] datatype := expression;

1 个答案:

答案 0 :(得分:0)

通过使SQL成为外部查询的子查询,一种方法是GROUP SQL的结果......

SELECT Page, MAX(chp_1) AS chp_1, MAX(chp_2) AS chp_2, MAX(chp_3) AS chp_3, MAX(chp_4) AS chp_4, MAX(chp_5) AS chp_5, MAX(chp_6) AS chp_6, MAX(chp_7) AS chp_7, MAX(chp_8) AS chp_8, MAX(chp_9) AS chp_9, MAX(chp_10) AS chp_10, MAX(chp_11) AS chp_11, MAX(chp_12) AS chp_12
FROM
(

-- *** paste your SQL in here ***

) AS indivdual_rows
GROUP BY Page

它假定页面不能为同一章节提供多个非空白值。如果不是这样,那么它只会显示MAX按字母顺序排列的值。

点击here to go to SQL Fiddle查看其实际效果。