码迷,mamicode.com
首页 > 其他好文 > 详细

枚举N行N列的自然数列

时间:2015-08-06 21:56:36      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

数据库环境: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

很简单。

(本文完)

枚举N行N列的自然数列

标签:

原文地址:http://www.cnblogs.com/boss-he/p/4709164.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!