我有一个相对简单的问题(我认为),但我无法解决。我有一列200条记录。行的值是数字1-200的列表(无重复)。我想在5列中组织数字,并将数据水平排序(升序AZ)。例:
Original table: Column1 1 2 3 4 5 6 7 8 ...and so on to 200
查看结果应如下所示:
|Col1|Col2|Col3|Col4|Col5| 1 2 3 4 5 6 7 8 9 10 11 12 ...an so on to 200
我研究了PIVOTING,但我认为它不起作用。
我们可以尝试一种数据透视查询,其中组定义为列减去一,再除以5。这会将前五个记录放入第一个组/行,然后将五个放入第二个组/行,依此类推。然后,我们以每个Column1 % 5
值为中心来确定每个值将进入五列中的哪一列。
SELECT MAX(CASE WHEN Column1 % 5 = 1 THEN Column1 END) AS Col1, MAX(CASE WHEN Column1 % 5 = 2 THEN Column1 END) AS Col2, MAX(CASE WHEN Column1 % 5 = 3 THEN Column1 END) AS Col3, MAX(CASE WHEN Column1 % 5 = 4 THEN Column1 END) AS Col4, MAX(CASE WHEN Column1 % 5 = 0 THEN Column1 END) AS Col5 FROM yourTable GROUP BY (Column1 - 1) / 5;