当前位置: 代码迷 >> Sql Server >> 枚举N行N列的天然数列
  详细解决方案

枚举N行N列的天然数列

热度:48   发布时间:2016-04-24 08:57:19.0
枚举N行N列的自然数列

数据库环境: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 ) / 5
View Code

很简单。

(本文完)

  相关解决方案