PCB MS SQL 排序应用---SQL相邻数据区间值求解

其中一篇 博文中有写《PCB MS SQL 排序应用---相邻数据且相同合并处理》此篇有也应相用也同的技巧,实现相邻数据区间值求解

示例:

原数据:处理前

求出区间值:处理后

SQL 代码实现

DECLARE @table table(RowNo INT,FlowTechName VARCHAR(20))

INSERT INTO @table(RowNo,FlowTechName) VALUES(1,‘沉铜‘)
INSERT INTO @table(RowNo,FlowTechName) VALUES(4,‘钻孔‘)
INSERT INTO @table(RowNo,FlowTechName) VALUES(5,‘钻孔‘)
INSERT INTO @table(RowNo,FlowTechName) VALUES(6,‘钻孔‘)
INSERT INTO @table(RowNo,FlowTechName) VALUES(7,‘沉铜‘)
INSERT INTO @table(RowNo,FlowTechName) VALUES(10,‘沉铜‘)
INSERT INTO @table(RowNo,FlowTechName) VALUES(11,‘沉铜‘)
INSERT INTO @table(RowNo,FlowTechName) VALUES(15,‘钻孔‘)
INSERT INTO @table(RowNo,FlowTechName) VALUES(18,‘沉铜‘)
INSERT INTO @table(RowNo,FlowTechName) VALUES(20,‘钻孔‘)
INSERT INTO @table(RowNo,FlowTechName) VALUES(21,‘钻孔‘)
INSERT INTO @table(RowNo,FlowTechName) VALUES(22,‘钻孔‘)

SELECT * FROM @table

SELECT min(RowNo) minRank,MAX(RowNo) maxRank,FlowTechName
FROM
  (SELECT FlowTechName,RowNo,row_number()over(partition by FlowTechName order by RowNo) -RowNo DiffVal
  FROM @table) t
GROUP BY FlowTechName,DiffVal
ORDER BY MAX(RowNo)

原文地址:https://www.cnblogs.com/pcbren/p/9270907.html

时间: 2024-10-11 12:32:57

PCB MS SQL 排序应用---SQL相邻数据区间值求解的相关文章

PCB MS SQL 排序应用---相邻数据且相同合并处理

这是一个很有趣SQL数据处理应用,具体需求如下 ERP需要工程将物料编码相邻的编码合并求和BOM用量,巧妙的用到了已有排序号与分组排序号之间的差值求解 示例: 原数据: 要求转换: 实际转换后数据: SQL代码实现: with tab1 as ( select 1 as [Rank] ,1710 as OPERATION_CODE,3.621000 UNIT_TIME UNION select 2 as [Rank] ,1710 as OPERATION_CODE,3.621000 UNIT_T

清理ms sql server 大日志文件数据

1.手动分离数据库: 2.手动删除日志文件: 3.重新生成日志文件: CREATE DATABASE FMIS0 ON (FILENAME = 'E:\FMIS0_DATA\FMIS0-Date') FOR ATTACH_REBUILD_LOG ;GO 清理ms sql server 大日志文件数据

MS SQL Server数据库修复/MDF数据文件数据恢复/MDF质疑/mdf无法附加

微软的SQL Server 数据库最常用的有两种类型的文件: 1.主要数据文件,文件后缀一般是.MDF: 2.事务日志文件,文件后缀一般是.LDF. 用户数据表.视图.存储过程等等数据,都是存放在MDF文件里,LDF文件是存放MS SQL Server操作过程中的日志记录. MDF文件必读附加到MS SQL Server数据库环境后,才能正常读取其中的数据.当由于某种原因数据库附加不上,MDF数据库文件的内容就没办法读取,修复的方法有两种: 1. 使用MS SQL Server环境进行修复,先以

PCB MS SQL 行转列(动态拼SQL)

一.原数据: SELECT inman,indate FROM [fp_db].[dbo].[ppezhpbb] WHERE indate > '2016-5-1' AND indate < '2016-6-1' ORDER BY indate 二.转换后(动态拼接SQL): --数据先存临时表 SELECT inman,indate INTO #tab FROM [fp_db].[dbo].[ppezhpbb] WHERE indate > '2016-5-1' AND indate

SQL Server 基础 03 查询数据基础

查询数据 简单的查询 1 create table stu_info 2 ( 3 sno int not null 4 ,sname varchar(20) not null 5 ,sex varchar(2) not null 6 ,birth varchar(20) not null 7 ,email varchar(20) not null 8 ,telephone int not null 9 ,depart varchar(20) not null 10 ) 11 12 13 sele

.SQL Server中 image类型数据的比较

原文:.SQL Server中 image类型数据的比较 在SQL Server中如果你对text.ntext或者image数据类型的数据进行比较.将会提示:不能比较或排序 text.ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符.不过image也是不支持like比较的.那怎么样对数据库中的图片做比较呢.对于这种大型对象的处理,在Oracle中有有专门的函数DBMS_LOB.COMPARE,而SQLSERVER中没有专门的处理函数,只能通过使用substri

oracle sql 排序与比较中的技巧与注意事项(一)

在sql排序中,oracle默认采用二进制的排序方法.大小写有不同的值,大写的值排在前面.有时候,我们需要处理的情况是,希望忽略大小写来进行排序.有多种方法可以实现: 设置NLS环境变量 alter session set NLS_SORT = 'BINARY_CI'; 使用UPPER和LOWER函数 用UPPER函数和LOWER函数把要比较的字段名.文字都转换成大写或者小写后再比较.这种方法的不足之处在于,使用函数后,标准的索引就不能再使用了,优化器无法正常工作,应对的方式是使用基于功能的索引

SQL 排序规则问题

http://blog.csdn.net/delphigbg/article/details/12744807 MSSQL排序规则总结 什么是排序规则呢? 排序规则根据特定语言和区域设置标准指定对字符串数据进行排序和比较的规则.SQL Server 支持在单个数据库中存储具有不同排序规则的对象.MSDN解释:在 Microsoft SQL Server  中,字符串的物理存储由排序规则控制.排序规则指定表示每个字符的位模式以及存储和比较字符所使用的规则 当 Transact-SQL 语句在具有不

SQL 排序规则 CodeProject

http://www.cnblogs.com/ifreesoft/p/4259626.html 开发ERP数据维护工具之一 修改SQL Server数据库排序规则 Change Collation 在部署ERP应用时,经常会碰到在开发环境下,没有问题,部署到服务器上,就出错.不同语言版本的操作系统.不同的数据库版本,等等因素的数据库排序规则的问题.比如在安装SQL Server 时取默认的规则,中文环境下,会设置为Chinese_PRC_CI_AS,但我们需要的规则应该是SQL_Latin1_G