2016-01-13 83 views
1

我有一列中的数据按升序排序。我想分成两列。检查我的表格和预期输出。这背后的逻辑是我想要我的第一列和第二,第四和第六等数据在我的第二列第一,第三,第五行数据。将数据拆分为2列

我现有的表:
表1:

Col1 
2012 
2013 
2014 
2015 
2016 
2017 

预期输出:

Col1 Col2 
2012 2013 
2014 2015 
2016 2017 

任何人只要有任何建议,我怎么能做到这一点。

回答

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