簡體   English   中英

SQL將單行拆分為固定的列數

[英]SQL Split Single Row into Fixed Number of Columns

我們需要將單行拆分為固定數量的多列。 以下是數據集的示例:

  • 1
  • 2
  • 3
  • 4
  • 6
  • 7

所需輸出:

Column A        Column B       Column C      Column D
1                  2              3              4
5                  6              7             NULL

感謝您的幫助。

SQL Server解決方案:

創建樣品表:

create table mytable (col1 int)

insert into mytable values
(1),
(2),
(3),
(4),
(5),
(6),
(7);

使用ModuloRow_Number() ,您可以輕松地做到這一點:

模查詢:

SELECT 
    R1.col1 as columnA,
    R2.col1 as columnB,
    R3.col1 as columnC,
    R4.col1 as columnD
FROM 
    (
        SELECT ROW_NUMBER() OVER (ORDER BY col1 ASC) AS RowNum, col1 
        FROM mytable 
        WHERE 
            col1 % 4 = 1
    ) AS R1
    FULL OUTER JOIN (
        SELECT ROW_NUMBER() OVER (ORDER BY col1 ASC) AS RowNum, col1 
        FROM mytable 
        WHERE 
            col1 % 4 = 2
    ) AS R2
    ON R1.RowNum = R2.RowNum
    FULL OUTER JOIN (
        SELECT ROW_NUMBER() OVER (ORDER BY col1 ASC) AS RowNum, col1 
        FROM mytable 
        WHERE 
            col1 % 4 = 3
   ) AS R3
    ON R2.RowNum = R3.RowNum
    FULL OUTER JOIN (
        SELECT ROW_NUMBER() OVER (ORDER BY col1 ASC) AS RowNum, col1 
        FROM mytable 
        WHERE 
            col1 % 4 = 0
   ) AS R4
    ON R4.RowNum = R3.RowNum

結果:

+---------+---------+---------+---------+
| columnA | columnB | columnC | columnD |
+---------+---------+---------+---------+
|       1 |       2 |       3 | 4       |
|       5 |       6 |       7 | (null)  |
+---------+---------+---------+---------+

SQL小提琴演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM