數據庫環境:SQL SERVER 2005
現有一個需求,要枚舉1-50個自然數,分10行5列展示。如圖,
解題思路:
1.利用數字輔助表,枚舉1-50的自然數列
2.將數字集進行行轉列,對5求余作為轉列的條件,并按照整除5分組
SQL實現
/*枚舉1-50的自然數列*/WITH x0 AS ( SELECT number FROM master..spt_values WHERE type = 'P' AND number >= 1 AND number <= 50 ) /*行轉列*/ SELECT ( number - 1 ) / 5 + 1 AS 行號 , MAX(CASE WHEN number % 5 = 1 THEN number END) AS 第一列 , MAX(CASE WHEN number % 5 = 2 THEN number END) AS 第二列 , MAX(CASE WHEN number % 5 = 3 THEN number END) AS 第三列 , MAX(CASE WHEN number % 5 = 4 THEN number END) AS 第四列 , MAX(CASE WHEN number % 5 = 0 THEN number END) AS 第五列 FROM x0 GROUP BY ( number - 1 ) / 5View Code
很簡單。
(本文完)
新聞熱點
疑難解答