我有一个相对简单的问题(我认为),但是我无法解决。我有一列200条记录。行的值是数字1-200的列表(无重复)。我想在5列中组织数字,并将数据水平排序(升序A-Z)。示例:
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,但我认为这行不通。
答案 0 :(得分:5)
我们可以尝试进行数据透视查询,将组定义为减去一的列除以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;