枚举N行N列的自然数列
数据库环境:SQL SERVER 2005
现有一个需求,要枚举1-50个自然数,分10行5列展示。如图,
aaarticlea/png;base64,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" alt="" />
解题思路:
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
很简单。
(本文完)
枚举N行N列的自然数列的更多相关文章
- 吴裕雄--天生自然python学习笔记:pandas模块用 dataframe.loc 通过行、列标题读取数据
用 df.va lue s 读取数据的前提是必须知道学生及科目的位置,非常麻烦 . 而 df.loc 可直接通过行.列标题读取数据,使用起来更为方便 . 使用 df.loc 的语法为: 行标题或列标题 ...
- word-wrap&&word-break,奇偶行、列设置样式
1.word-wrap和word-break区分. 来源场景:机械租赁mvc驾驶员信息查看: 当备注的文字多的时候,第一列的值成这模样: 解决方案:设置table 的td可自动换行.首先table设置 ...
- DataGridView 行、列的隐藏和删除
) 行.列的隐藏 [VB.NET] ' DataGridView1的第一列隐藏 DataGridView1.Columns(0).Visible = False ' DataGridView1的第一行 ...
- List实现行转列的通用方案
最近在做报表统计方面的需求,涉及到行转列报表.根据以往经验使用SQL可以比较容易完成,这次决定挑战一下直接通过代码方式完成行转列.期间遇到几个问题和用到的新知识这里整理记录一下. 阅读目录 问题介绍 ...
- 基于上三角变换或基于DFS的行(列)展开的n阶行列式求值算法分析及性能评估
进入大一新学期,看完<线性代数>前几节后,笔者有了用计算机实现行列式运算的想法.这样做的目的,一是巩固自己对相关概念的理解,二是通过独立设计算法练手,三是希望通过图表直观地展现涉及的两种算 ...
- List,DataTable实现行转列的通用方案
最近在做报表统计方面的需求,涉及到行转列报表.根据以往经验使用SQL可以比较容易完成,这次决定挑战一下直接通过代码方式完成行转列.期间遇到几个问题和用到的新知识这里整理记录一下. 阅读目录 问题介绍 ...
- C#List实现行转列
List实现行转列的通用方案 最近在做报表统计方面的需求,涉及到行转列报表.根据以往经验使用SQL可以比较容易完成,这次决定挑战一下直接通过代码方式完成行转列.期间遇到几个问题和用到的新知识这里整理记 ...
- MySQL--数据表操作--行转列和列转行
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11782549.html MySQL--数据表操作: 会用到的查询操作. 1. Limit的用法 ...
- SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段: 方法二:使用拼接SQL, ...
随机推荐
- Unity3D常见技术点(持续更新)
一:获取对象, 添加对象等 1:使用prefab生成对象 GameObject ballObj = GameObject.Instantiate(Resources.Load(, Quaternion ...
- HNOI 2008:水平可见直线
Description 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为 可见的,否则Li为被覆盖的. 例如,对于直线: L1:y ...
- Can't initialize OCI. Error -1
今天使用Toad连接Oracle时出现"Can't initialize OCI. Error -1" 解决方法 因为是刚做的windows 7系统,所以没有设置更改通知的时间 把 ...
- Firefox添加插件支持修改Headers
安装以下插件,Firefox就可以修改Headers: 安装成功后,会在左下角出现一个这样的图标,点击这个图标就可以随意修改Headers的参数了.
- Bash字符串的处理
# 定义几个变量用于测试目的 FILE_NAME="/usr/local/app/world.txt" TIME_NOW="`date +"%Y%m%d%H%M ...
- ffmpeg, libav学习记录
转载自:http://hi.baidu.com/y11022053/item/81f12035182257332e0f8196 一个偶然遇到了ffmpeg,看起来不多,而且通用性很强,算是一个扎实的技 ...
- C++类实现AVL树
二叉查找树是个好东西,他让查找,插入,删除,这些常用操作变得高效,但是,他是存在问题的,那就是,在坏的输入序列下,树会退化成链表,这就很尴尬了,于是为了避免这种情况的发生,我们需要一种数据结构,可以自 ...
- Mysql中查看表的类型InnoDB
问题描述: MySQL 数据表主要支持六种类型 ,分别是:BDB.HEAP.ISAM.MERGE.MYISAM.InnoBDB. 这六种又分为两类,一类是“事务安全型”(transaction-s ...
- WDCP是什么 关于WDCP的详细介绍
WDCP是WDlinux Control Panel的简称,是一套用PHP开发的Linux服务器管理系统以及虚拟主机管理系统,,旨在易于使用Linux系统做为我们的网站服务器,以及平时对Linux服务 ...
- URAL 1146 Maximum Sum(最大子矩阵的和 DP)
Maximum Sum 大意:给你一个n*n的矩阵,求最大的子矩阵的和是多少. 思路:最開始我想的是预处理矩阵,遍历子矩阵的端点,发现复杂度是O(n^4).就不知道该怎么办了.问了一下,是压缩矩阵,转 ...