是否可以將1列的sql輸出格式化爲3列?轉換sql視圖輸出
例如,我的電流輸出爲:
Column1
1
2
3
4
5
6
7
8
9
這裏是我所要的輸出是:
Column1 Column2 Column3
1 2 3
4 5 6
7 8 9
是否可以將1列的sql輸出格式化爲3列?轉換sql視圖輸出
例如,我的電流輸出爲:
Column1
1
2
3
4
5
6
7
8
9
這裏是我所要的輸出是:
Column1 Column2 Column3
1 2 3
4 5 6
7 8 9
你可以用模數師做到這一點和ROW_NUMBER()
功能:
;WITH cte AS (SELECT *,ROW_NUMBER() OVER(ORDER BY Column1) RN
FROM Table1)
,cte2 AS (SELECT *,ROW_NUMBER() OVER(PARTITION BY RN%3 ORDER BY Column1) RN2
FROM cte)
SELECT MAX(CASE WHEN RN%3 = 1 THEN column1 END) Col1
,MAX(CASE WHEN RN%3 = 2 THEN column1 END) Col2
,MAX(CASE WHEN RN%3 = 0 THEN column1 END) Col3
,RN2
FROM cte2
GROUP BY RN2
例子: SQL Fiddle
上面的問題(1到9)中的值僅僅是示例。我不知道這些值是什麼。它可能是一個雖然z或它可能是字母數字值。 – user793468
我收到此錯誤: Msg 245,Level 16,State 1,Line 1 將varchar值'JRD1123'轉換爲數據類型int時轉換失敗。 – user793468
@ user793468是的,非數字字段不能分割,必須在單獨的步驟中添加行號。查看更新的動物示例。 –
您正在使用什麼邏輯在特定列中放置某個值? –
@ M.Ali Row2將轉到Column2,Row1和Row3將轉到Column3,Row1等 – user793468