master.dbo.spt_values是一个数据库常量表,表里都是一些枚举数据。

我们可以先查询一下看表里都有什么☞

select * from master.dbo.spt_values

查询得知表里有五个字段:☞
name(名称),number(值),type(类型),low(下限),high(上限),status(状态)


抽取一个type看下☞

select number from master..spt_values where type = 'p'
--Type = 'P'的number数字范围是0-2047

  1. 取1-1000之间的数字
select number from master..spt_values
where type='P' and number between 1 and 1000
  1. 取当前日期往后的365个日期
select convert(varchar(10), dateadd(day,number,getdate()), 120) as [日期]
from master..spt_values
where type = 'P' and number between 0 and 365  
  1. 取2019年4月至2020年3月的月份
select convert(varchar(6),dateadd(month,number,'20190401'),112) as month
from master..spt_values
where type = 'P' and dateadd(month,number,'20190401') <= '20200301'
  1. 取两句话中重复的汉字
declare @text1 varchar(100),@text2 varchar(100)
set @text1 = '没有理想的人不伤心'
set @text2 = '他也会伤心'
SELECT SUBSTRING(@text2,number,1) as value
from master..spt_values
where type='p' and number <= LEN(@text2) and CHARINDEX(SUBSTRING(@text2,number,1),@text1) > 0
  1. 求一个日期所在月份的所有日期
declare @date datetime
set @date = '20220225'
select convert(char(7),@date,120) + '-' + right('0' + convert(varchar(2),number),2) as [日期格式1]
,ltrim(year(@date)) + right(100+month(@date),2)+right('0'+ltrim(number),2) as [日期格式2]
from master..spt_values
where type = 'p'
and number >= 1
and number <= datediff(dd,convert(char(7),@date,120) + '-01',convert(char(7),dateadd(mm,1,@date),120)+'-01')

练习题:
有如下一张表T

ITEM表示物料种类,QTY表示发货数量,MIN_QTY表示最小发货量,希望通过SQL查询得出下面的结果:

解释:通过MIN_QTY将QTY进行等分,不能够完全等分的,剩余部分用QTY减去等分后的数量。例如230的最小数量是80,可以先等分成2份,剩下部分用230-2*80=70

提示:可以使用MASTER.DBO.SPT_VALUES进行关联后进行等分(SQL Server的解法)

select Item,QTY,MIN_QTY,SEQ
,case when MIN_QTY * rnk < QTY THEN MIN_QTY ELSE QTY-MIN_QTY*(rnk-1) END AS NEW_QTY
from (
select Item,QTY,MIN_QTY,count(MIN_QTY) over ( partition by Item ) as SEQ,b.number + 1 as rnk
from T a
CROSS join master..spt_values b
where b.number * a.MIN_QTY <= a.qty and b.Type = 'P'
) a

Sql Server中 master.dbo.spt_values 的用法相关推荐

  1. SQL Server 中 with tmp 临时表的用法

    SQL Server 中 with tmp 临时表的用法 ----------with临时表用法,有时候采用临时表比采用in的效率更高,避免了全表扫描. 实例中实现了查询普通题.大题.子题目的sql ...

  2. SQL Server中的锁类型及用法(转载)

    一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新  A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读  ...

  3. SQL Server中LIKE和PATINDEX的用法

    在SQL Server中,能使用通配符的只有2个:LIKE.PATINDEX. 不过LIKE支持2种通配符转义,无限制最全面:而PATINDEX只支持最简单的通配符转义([]转义),限制较多. LIK ...

  4. SQL Server中Rowcount与@@Rowcount的用法 和set nocount on 也会更新@@Rowcount

    rowcount的用法: rowcount的作用就是用来限定后面的sql在返回指定的行数之后便停止处理,比如下面的示例, set rowcount 10 select * from 表A 这样的查询只 ...

  5. SQL Server中osql/sqlcmd的基本用法

    [转自] http://www.cnblogs.com/wontonJ/archive/2011/06/18/2084400.html 这段时间在做项目的时候,遇到一个问题,客户的程序要架设在自己的服 ...

  6. MS SQL SERVER 中几个函数的用法

    1.STUFF 将第一个参数,从第start位置开始的length个字符(包含第start位置,位置从1开始),用第四个参数替换. Syntax ( character_expression , st ...

  7. sql server 中 SET ROWCOUNT 的具体用法

    SET ROWCOUNT 使 Microsoft® SQL Server™ 在返回指定的行数之后停止处理查询. 语法 SET ROWCOUNT{ number | @number_var } 参数 n ...

  8. SQL Server 中master..spt_values的应用

    今天在做数据分析报表的时候遇到一个这样的问题. 表结构如下. 部门编码.部门名称.部门人员ID(中间用逗号分割) 我想通过和人员表链接,查询出一个新的数据集,查询出的结果集格式如下: 人员信息(ID或 ...

  9. mysql @@rowcount_「rowcount」SQL Server中Rowcount与@@Rowcount的用法 - seo实验室

    rowcount rowcount的用法: rowcount的作用就是用来限定后面的sql在返回指定的行数之后便停止处理,比如下面的示例, set rowcount 10 select * from ...

最新文章

  1. 静态html页面传递参数,javascript静态页面传值的三种方法分享
  2. 1.18 static的常见问题和使用误区
  3. boost::mp11::mp_any_of相关用法的测试程序
  4. Linux自动备份脚本
  5. 像小猪佩奇那样生活,需要多少钱?
  6. endnote怎么和word关联_endnote x9怎么和word关联?Word中用EndNote X9教程
  7. 从数据到模型:实现自动驾驶高效感知
  8. 给超链接A添加按钮样式
  9. 王兴针对“共同富裕”表态,称其根植于美团基因中
  10. HTML超文本标记语言(八)——表单form
  11. velocity 时间显示 时间格式化 时间转化
  12. (第五周)结对项目——黄金点游戏
  13. ☆汇总☆电力电子技术simulink仿真电路分析
  14. 雪莹软件将word转图片产生空白区域的问题解决方法
  15. OC5022B内置MOS的开关降压型恒流驱动芯片
  16. 孙子兵法--你如何来做好事情
  17. 日常食物软分类与烹饪方法的思考——预防肥胖
  18. 路由器与无线网如何连接到服务器,两个路由器无线连接怎么设置_如何将两个路由器无线连接-192路由网...
  19. gradle优化之 总体配置优化
  20. 记录一次504超时的解决方案

热门文章

  1. Python3.X BeautifulSoup([your markup], “lxml“) markup_type=markup_type))的解决方案
  2. 看完这篇 教你玩转渗透测试靶机Vulnhub——The Planets:Mercury
  3. 对于集合set的定义
  4. 税务筹划包括哪些方面?税务筹划的基本步骤
  5. 如何从0设计一套实用可靠的支付服务系统?
  6. 私募基金的交易法宝:套利定价理论(APT)
  7. PLC中ST编程的单按钮启停
  8. 爬虫基础之Python简单爬取实例-----爬取网站的PPT模板
  9. linux quota硬盘,Linux 磁盘配额 quota
  10. 4.2 计算机体系结构——存储层次结构——cache工作原理