为了账号安全,请及时绑定邮箱和手机立即绑定

查询出某两个序号之间(比如001--100)缺少的那些序号

标签:
SQL Server

在网上看到一个问题:http://topic.csdn.net/u/20110111/09/f045e687-96b1-429f-ada5-634a7e8f956b.html?83345


如何查询出某两个序号之间(比如001--100)缺少的那些序号。使用SQL的EXCEPT集合运算,解决方法,请参考下面例子:

代码

IF OBJECT_ID ('#t') IS NOT NULL DROP TABLE #t
GO

--创建一个临时表
CREATE TABLE #t 
(
    Number NVARCHAR(20)
)

--填充001至100个序号进入这个临时表中
DECLARE @i INT = 1
WHILE @i <= 100  --最大的序号
BEGIN
    --使用REPLICATE函数,指定的次数(3)复制字符串值
    DECLARE @v NVARCHAR(20) = RIGHT(REPLICATE('0',3) + CAST(@i AS NVARCHAR(20)),3)
    INSERT INTO #t ([Number]) VALUES (@v)
    SET @i = @i + 1
END

--最关键是下面这个EXCEPT(差集)运算
SELECT [Number] FROM #t 
EXCEPT
SELECT [序号] FROM [dbo].[ta]


执得结果:

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消