将数据拆分为2列
问题描述:
我有一列中的数据按升序排序。我想分成两列。检查我的表格和预期输出。这背后的逻辑是我想要我的第一列和第二,第四和第六等数据在我的第二列第一,第三,第五行数据。将数据拆分为2列
我现有的表:
表1:
Col1
2012
2013
2014
2015
2016
2017
预期输出:
Col1 Col2
2012 2013
2014 2015
2016 2017
任何人只要有任何建议,我怎么能做到这一点。
答
我认为你可以使用这样的查询:
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