1-9 用SQL处理数列-SQL进阶教程

这篇SQL进阶教程探讨如何生成连续编号、查找缺失编号,以及解决与座位预订相关的数学问题,如判断是否能坐下三个人,以及确定最多能容纳的人数。文章涉及单调序列的分析。
摘要由CSDN通过智能技术生成

生成连续编号

在这里插入图片描述
在这里插入图片描述

-- 求连续编号(1):求0~99的数
select D1.digit+(D2.digit*10) seq
from Digits D1 cross join Digits D2 --交叉连接:得到所有可能的组合
order by seq;
/*D1代表个位数字的集合,D2代表十位数字的集合*/

-- 求连续编号(2):求1~542的数
select D1.digit+(D2.digit*10)+(D3.digit*100) seq
from Digits D1 cross join Digits D2 cross join Digits D3
where D1.digit+(D2.digit*10)+(D3.digit*100) between 1 and 542
order by seq;

/*通过将这个查询的结果存储在视图里,就可以在需要连续编号时通过简单的select来获取需要的编号*/
-- 生成序列视图(包含0~999)
create view Sequence(seq)
as select D1.digit+(D2.digit*10)+(D3.digit*100)
from Digits D1 cross join Digits D2 cross join Digits D3;

-- 从序列视图中获取1~100
select seq
from Sequence
where seq between 1
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值