SQL server查询本条数据的下一条数据,上一条数据,及其对应的值,SQL语句示例。
1.创建测试表
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[testA]') AND type IN ('U'))DROP TABLE [dbo].[testA]
GOCREATE TABLE [dbo].[testA] ([id] int NOT NULL,[code] varchar(255) COLLATE Chinese_PRC_CI_AS NULL,[name] varchar(255) COLLATE Chinese_PRC_CI_AS NULL,[tm] datetime NULL,[valueN] int NULL
)
GOALTER TABLE [dbo].[testA] SET (LOCK_ESCALATION = TABLE)
GO-- ----------------------------
-- Records of [testA]
-- ----------------------------
INSERT INTO [dbo].[testA] VALUES (N'1', N'001', N'张三', N'2021-03-10 16:18:33.000', N'10')
GOINSERT INTO [dbo].[testA] VALUES (N'2', N'001', N'张三', N'2021-03-09 16:18:33.000', N'9')
GOINSERT INTO [dbo].[testA] VALUES (N'3', N'001', N'张三', N'2021-03-08 16:18:33.000', N'8')
GOINSERT INTO [dbo].[testA] VALUES (N'4', N'001', N'张三', N'2021-03-07 16:18:33.000', N'7')
GOINSERT INTO [dbo].[testA] VALUES (N'5', N'001', N'张三', N'2021-03-06 16:18:33.000', N'6')
GOINSERT INTO [dbo].[testA] VALUES (N'6', N'001', N'张三', N'2021-03-05 16:18:33.000', N'5')
GOINSERT INTO [dbo].[testA] VALUES (N'7', N'001', N'张三', N'2021-03-04 16:18:33.000', N'4')
GOINSERT INTO [dbo].[testA] VALUES (N'8', N'001', N'张三', N'2021-03-03 16:18:33.000', N'3')
GOINSERT INTO [dbo].[testA] VALUES (N'9', N'001', N'张三', N'2021-03-02 16:18:33.000', N'2')
GOINSERT INTO [dbo].[testA] VALUES (N'10', N'001', N'张三', N'2021-03-01 16:18:33.000', N'7')
GOINSERT INTO [dbo].[testA] VALUES (N'11', N'001', N'张三', N'2021-03-01 08:00:00.000', N'0')
GOINSERT INTO [dbo].[testA] VALUES (N'12', N'002', N'李四', N'2021-03-10 08:00:33.000', N'9')
GOINSERT INTO [dbo].[testA] VALUES (N'13', N'002', N'李四', N'2021-03-09 08:00:33.000', N'99')
GOINSERT INTO [dbo].[testA] VALUES (N'14', N'002', N'李四', N'2021-03-08 08:00:33.000', N'88')
GOINSERT INTO [dbo].[testA] VALUES (N'15', N'002', N'李四', N'2021-03-05 08:00:33.000', N'9')
GOINSERT INTO [dbo].[testA] VALUES (N'16', N'002', N'李四', N'2021-03-01 08:18:33.000', N'9')
GOINSERT INTO [dbo].[testA] VALUES (N'17', N'003', N'王五', N'2021-03-10 16:18:33.000', N'100')
GOINSERT INTO [dbo].[testA] VALUES (N'18', N'003', N'王五', N'2021-03-05 16:18:33.000', N'50')
GOINSERT INTO [dbo].[testA] VALUES (N'19', N'003', N'王五', N'2021-03-01 16:18:33.000', N'60')
GOINSERT INTO [dbo].[testA] VALUES (N'20', N'003', N'王五', N'2021-03-01 08:00:00.000', NULL)
GO-- ----------------------------
-- Primary Key structure for table testA
-- ----------------------------
ALTER TABLE [dbo].[testA] ADD CONSTRAINT [PK__testA__3213E83FAB649435] PRIMARY KEY CLUSTERED ([id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
GO
2.执行SQL,查看执行结果
-- 本条SQL 用于查询每条数据的前后数据值SELECTpreData=(SELECT top 1 tm FROM testA WHERE tm < t1.tm ORDER BY tm desc), -- 上条数据的时间nextData=(SELECT top 1 tm FROM testA WHERE tm > t1.tm ORDER BY tm asc), -- 下条数据的时间t1.tm,-- 本条数据时间t1.code,t1.name,t1.valueN,-- 本条数据值nextvalueN=(SELECT top 1 valueN FROM testA WHERE tm > t1.tm ORDER BY tm asc) -- 下条数据的值
FROM testA t1
WHERE t1.tm>'2021-03-01 08:00' and '2021-03-10 08:00' > t1.tm
GROUP BY t1.code,t1.name,t1.tm,t1.valueN
3.完成
SQL server查询本条数据的下一条数据,上一条数据,及其对应的值,SQL语句示例。相关推荐
- SQL Server查询存储–概述
The SQL Server Query Store is a relatively new feature introduced in SQL Server 2016. It is basicall ...
- SQL Server查询所有数据库下模式schema
SQL Server查询所有数据库下模式名 需求描述 找到SQL Server里所有数据库下的schema.输出格式为数据库名.模式名. 背景补充 关于SQL Server需要简单介绍下,从数据库对象 ...
- Sql Server查询包含nbsp/乱码/空格符无法查出数据
Sql Server查询包含乱码/空格符无法查出数据 今天开发遇到了一个离谱的问题,在接口查sqlserver时,有一部分以空格结尾的列查不到,先检查是否是参数有问题: 在接收ajax的参数时,出现了 ...
- SQL Server查询本周、本年所有天数数据
sql server 查询本周.本月所有天数的数据 查询本月所有的天数: --本月所有的天数 select convert(varchar(10),dateadd(DAY,t2.number,t1.d ...
- sql查询oracle数据,sql-server – 从SQL Server查询Oracle数据库
我有一个Oracle 11g XE数据库,我想将其转移到SQL Server Express 2005中. 起初我以为我只是在Oracle中生成表作为SQL,操纵数据格式,并在SQL Server中运 ...
- SQL Server 查询性能优化——覆盖索引(二)
在SQL Server 查询性能优化--覆盖索引(一) 中讲了覆盖索引的一些理论. 本文将具体讲一下使用不同索引对查询性能的影响. 下面通过实例,来查看不同的索引结构,如聚集索引.非聚集索引.组合索 ...
- 如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集
如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?(2006-12-14 09:25:36) 与这个问题具有相同性质的其他描述还包括: 如 ...
- Sql Server查询性能优化之走出索引的误区
据了解绝大多数开发人员对于索引的理解都是一知半解,局限于大多数日常工作没有机会.也什么没有必要去关心.了解索引,实在哪天某个查询太慢了找到查询条件建个索引就ok,哪天又有个查询慢了,再建立个索引就是, ...
- sql server 锁与事务拨云见日(下)
sql server 锁与事务拨云见日(下) 原文:sql server 锁与事务拨云见日(下) 在锁与事务系列里已经写完了上篇中篇,这次写完下篇.这个系列俺自认为是有条不紊的进行,但感觉锁与事务还是 ...
最新文章
- Numpy入门教程:11. 时间日期和时间增量
- 打开正经图片,你可能会看到一张黄图,这种造假方法能同时骗过AI和人眼
- 企业想独立完成网站建设也不是不可以
- springboot教程-web(二)
- 思科ACL阻止勒索病毒
- 【响应式编程的思维艺术】 (5)Angular中Rxjs的应用示例
- Python实战从入门到精通第十九讲——自定义字符串的格式化
- java test20006_Java单例7种测试实践
- 强中更有强中手:遇到CSDN比吾进步还快的博主
- EDA技术实用教程 | 复习五 | 端口模式
- Objective-C基础之闭包
- java读取excrl模板填充数据_java中自定义excel模板并且填充内容
- vb冒泡排序法流程图_vb数组排序-冒泡排序法
- AI芯片:寒武纪PuDianNao结构分析
- 【历史上的今天】9 月 6 日:Facebook 收购 Instagram;华为发布 5G 芯片;惠普并购康柏
- PROCAST-重力铸造分析流程
- Collection和List,Set,Map的关系与说明
- RISC-V要上天!NASA选它做下一代航天计算芯片
- 风机变速箱_1.5MW风机变速箱维修成本分析
- 高等数学笔记:关于等价无穷小替换的一个猜想