我有一列中的数据按升序排序。我想把它分成两列。检查我的表和预期输出。这背后的逻辑是我想要第一列中的第1行,第3行,第5行数据以及第2列中的第2行,第4行和第6行等等。
我现有的表:
的表1:
Col1
2012
2013
2014
2015
2016
2017
预期输出:
Col1 Col2
2012 2013
2014 2015
2016 2017
任何有任何建议的人如何实现这一点。
答案 0 :(得分:3)
我认为你可以使用这样的查询:
SELECT
Max(Col1) Col1, Max(Col2) Col2
FROM (
SELECT
(ROW_NUMBER() OVER (ORDER BY Col1)- 1) / 2 as seq,
CASE WHEN ROW_NUMBER() OVER (ORDER BY Col1) % 2 = 1 THEN Col1 END Col1,
CASE WHEN ROW_NUMBER() OVER (ORDER BY Col1) % 2 = 0 THEN Col1 END Col2
FROM yourTable) t
GROUP BY seq