SqlServer中连续号及断号查询—附源码

效果如下图所示:  

SqlServer中连续号及断号查询SQL如下:

--1.定义临时表
DECLARE @TestTemp TABLE(
		TestCode NVARCHAR(50),
		TestNum INT 
)

DECLARE @DataTemp TABLE(
		TestCode NVARCHAR(50),
		TestNumStr NVARCHAR(100)
)

--2.插入测试数据
INSERT INTO @TestTemp(TestCode,TestNum)
VALUES
('Code001',2),('Code001',3),('Code001',4),('Code001',6),('Code001',8),('Code001',9),
('Code002',20),('Code002',15),('Code002',16),('Code002',17),('Code002',10),('Code002',21)

--3.连续号处理后插入临时表
INSERT INTO @DataTemp(TestCode,TestNumStr)
SELECT TestCode,
	   (CASE WHEN MAX(b.TestNum)>MIN(b.TestNum) 
		    THEN CAST(MIN(b.TestNum) AS NVARCHAR(10))+'~'+CAST(MAX(b.TestNum) AS NVARCHAR(10)) 
			ELSE CAST(MIN(b.TestNum) AS NVARCHAR(10)) 
	   END) AS TestNumStr
FROM (
        select a.*,(a.TestNum-ROW_NUMBER() OVER(ORDER BY a.TestCode)) cc
        from (
               SELECT TOP 100 t.TestCode,t.TestNum 
			   FROM @TestTemp AS t
			   ORDER BY t.TestCode,t.TestNum
        ) a
)  b
group by b.TestCode,b.cc

--4.查询最终结果
SELECT * FROM @DataTemp

--5.查询最终结果:按照Code分组,连续号列转行
SELECT TestCode,TestNumStr=STUFF((SELECT ','+tt.TestNumStr FROM @DataTemp AS tt WHERE tt.TestCode=t.TestCode FOR XML PATH('')),1,1,'')
FROM @DataTemp AS t
GROUP BY TestCode

--6.断号查询 方式1
SELECT * FROM @TestTemp AS a 
WHERE NOT EXISTS(SELECT * FROM @TestTemp b WHERE b.TestNum = a.TestNum + 1)
	  AND TestNum < (SELECT MAX(TestNum) FROM @TestTemp) 

--7.断号查询  方式2
SELECT a.TestCode,a.TestNum+1 AS TestNum
FROM @TestTemp AS a 
WHERE NOT EXISTS(SELECT * FROM @TestTemp b WHERE b.TestNum = a.TestNum + 1)
	  AND TestNum < (SELECT MAX(TestNum) FROM @TestTemp) 
ORDER BY a.TestCode,a.TestNum

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/433436.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

供应链优化:降本增效的核心战略——张驰咨询

在当今这个高度竞争的商业环境中&#xff0c;企业为了保持竞争力&#xff0c;不断寻求降低成本和提升效率的策略变得至关重要。有效的成本控制和效率提升不仅能够增加企业的利润率&#xff0c;还能增强其市场地位和客户满意度。以下是一些实用的策略&#xff0c;旨在帮助企业实…

2024春招面试,2024年阿里Android高级面试题分享

前言 作为一个3-5年的Android工程师&#xff0c;我们经常会遇到这些瓶颈&#xff1a; 1.技术视野窄 长期在小型软件公司&#xff0c;外包公司工作&#xff0c;技术视野被限制的太厉害 2.薪资提升难 初中级Android岗位薪资上升空间有限&#xff0c;基本上你想拿15k以上&#…

android开发教程百度网盘,高并发系统基础篇

展望未来 操作系统 移动操作系统的演变过程&#xff0c;从按键交互的塞班功能机到触摸屏交互的Android/IOS智能机&#xff0c;从小屏幕手机到全面屏、刘海屏、水滴屏。任何系统无非干两件事&#xff1a;输入和输出&#xff0c;接收到外部输入信号后经过操作系统处理后输出信息…

【前端系列】vue

这里写目录标题 一、Vue简介1.1 主流前端框架/库简介 二、下载和安装Vue2.1 下载2.2 安装完成后&#xff0c;检查2.3创建全局安装目录和缓存日志目录2.4 为了下载包快速&#xff0c;改源为淘宝镜像2.5 查看npm配置修改是否成功 三、配置环境变量环境变量—用户变量—选中Path—…

字符指针数组指针的理解

1.字符指针&#xff1a;也就是存放字符地址的指针&#xff08;和整型指针差不多&#xff09; 代码如下&#xff1a; int main() {char ch w;char *pc &ch;*pc w;return 0; } 2.数组指针&#xff1a;也就是指向数组的指针 2.1数组指针如何初始化 int main() {int ar…

学习大数据,所必需的java基础(8)

文章目录 字符缓冲流字符缓冲输出流 _Buffered和Writer字符缓冲输入流字符缓冲流练习 转换流字符编码字符集转换流转换流_OutputStreamWriter序列流和反序列流的介绍序列化流_ObjectOutputStream反序列化_ObjectInputStream不想被序列化操作反序列化时出现的问题以及分析和解决…

低代码平台,面向业务or技术?

低代码开发平台是一种新兴的技术趋势&#xff0c;它为企业提供了快速、高效地开发应用程序的方法。随着数字化转型的加速&#xff0c;越来越多的企业开始关注低代码开发平台&#xff0c;并在实际应用中取得了一定的成果。 作为使用者来说&#xff0c;面对市场上形形色色的低代…

力扣hot100:438.找到字符串中所有字母异位词(滑动窗口)

26个字符&#xff0c;我复制怎么了&#xff1f;26个字符我比较个数怎么了&#xff1f; 顶多时间复杂度*26 本题用固定窗口大小的滑动窗口每次比较包含26个元素的数组次数&#xff0c;最容易写。 动态窗口大小哈希表存数值&#xff08;双指针差值&#xff09;难想难写。 一、动态…

【随笔】yt-dlp使用cookie完成身份认证 python yt-dlp库常用参数

文章目录 一、提取cookies1.1 不提取出来1.2 提取为单独文件1.2 使用cookies 二、yt-dlp 用法&#xff08;python库&#xff09;基本参数视频参数播放列表参数高级参数 以前用yt-dlp做的软件&#xff1a; 但是部分网站需要在登录状态才能获取更高格式的内容。 比如&#xff…

dolphinscheduler试用(一)(边用边修bug。。。。create tenant error)

&#xff08;作者&#xff1a;陈玓玏&#xff09; 前提&#xff1a;部署好了dolphinscheduler&#xff0c;部署篇见https://blog.csdn.net/weixin_39750084/article/details/136306890?spm1001.2014.3001.5501 官方文档见&#xff1a;https://dolphinscheduler.apache.org/…

数据结构(二)——线性表

二、线性表 2.1线性表的定义和基本操作 2.1.1 线性表的基本概念 线性表&#xff1a;是具有相同数据类型的 n 个数据元素的有限序列。(Eg:所有的整数按递增次序排列&#xff0c;不是顺序表&#xff0c;因为所有的整数是无限的)其中n为表长&#xff0c;当n0时线性表是一个空表…

将ppt里的视频导出来

将ppt的后缀从pptx改为zip 找到【media】里面有存放图片和音频以及视频&#xff0c;看文件名后缀可以找到&#xff0c;mp4的即为视频&#xff0c;直接复制粘贴到桌面即可。 关闭压缩软件把ppt后缀改回&#xff0c;不影响ppt正常使用。

2023年全球AI服务器市场占有率

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 AI服务器是高端产品&#xff0c;全球都缺高端AI芯片&#xff0c;最近集邦咨询发布了2023 年全球 AI 服务器市场占有率的市场报告。 排名第一的是浪潮&#xff0c;第二名是戴尔、第三名是HPE(慧与也跟惠普有关)、第…

各种业务场景调用API代理的API接口教程

API代理的API接口在各种业务场景中具有广泛的应用&#xff0c;本文将介绍哪些业务场景可以使用API代理的API接口&#xff0c;并提供详细的调用教程和代码演示&#xff0c;同时&#xff0c;我们还将讨论在不同场景下使用API代理的API接口所带来的好处。 哪些业务场景可以使用API…

Qt ini配置文件

ini文件用于保存用户的设置操作&#xff0c;下列以背景颜色设置为例子 暂时默认设置为白色背景 这段代码放置在主窗口的构造函数中&#xff0c;用于初始化读取ini文件 QString color;QSettings *set new QSettings("color.ini",QSettings::IniFormat);set->begi…

泰迪智能科技-2024年高校大数据人才培养探索模式

随着数字经济的高速发展&#xff0c;对于大数据人才的需求日益增长。产业数字化和数字产业化之间的关系&#xff0c;已经成为推动社会发展的关键。为此&#xff0c;高校及产业界需要紧密配合&#xff0c;以培养出符合时代需求的大数据人才。 数字产业化与产业数字化高速发…

C++_程序流程结构_跳转语句_break

break 作用 用于跳出选择结构或循环结构 break使用的时机 出现在switch条件语句中&#xff0c;作用是终止case并跳出switch出现在循环语句中&#xff0c;作用是跳出当前的循环语句出现在嵌套循环中&#xff0c;跳出最近的内层循环语句 示例1 示例2 示例3

入门指南:使用uni-app构建跨平台应用

入门指南&#xff1a;使用uni-app构建跨平台应用 &#x1f31f; 前言 欢迎来到我的小天地&#xff0c;这里是我记录技术点滴、分享学习心得的地方。&#x1f4da; &#x1f6e0;️ 技能清单 编程语言&#xff1a;Java、C、C、Python、Go前端技术&#xff1a;Jquery、Vue.js、R…

【MySQL】数据库的操作(1)

【MySQL】数据库的操作&#xff08;1&#xff09; 目录 【MySQL】数据库的操作&#xff08;1&#xff09;创建数据库数据库的编码集和校验集查看系统默认字符集以及校验规则查看数据库支持的字符集查看数据库支持的字符集校验规则校验规则对数据库的影响数据库的删除 数据库的备…

【Leetcode每日一题】 前缀和 - 和为 K 的子数组(难度⭐)(29)

1. 题目解析 题目链接&#xff1a;560. 和为 K 的子数组 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 核心在于计算题目所给数组是否存在连续子数组和为指定值&#xff0c;存在返回连续子数组个数即可&#xff0c;不存在返回0即…