我有一个这样的表,第一列标识该行所属的组,第二列是实际数据。
+--------+--------+
|Column A|Column B|
+--------+--------+
|A |1 |
|A |2 |
|A |3 |
|B |2 |
|B |3 |
|B |4 |
+--------+--------+
我希望将表格转换为这样,但每个组本身都有一个标题行。
+--------+--------+
|Column A|Column B|
+--------+--------+
|A |NULL |
|NULL |1 |
|NULL |2 |
|NULL |3 |
|B |NULL |
|NULL |2 |
|NULL |3 |
|NULL |4 |
+--------+--------+
答案 0 :(得分:1)
这是一个解决方案:
SELECT CASE WHEN p.columnB is null THEN p.columnA END as ColumnA,
p.columnB
FROM(
SELECT distinct t.columnA as columnA,NULL as columnB
FROM YourTable t
UNION ALL
SELECT s.columnA,s.columnB
FROM YourTable s) p
ORDER BY p.columnA,
CASE WHEN p.columnB IS NULL THEN 0 ELSE 1 end
但是,如果你打算用这些数据做其他事情而不是呈现它,我强烈建议agasint它。