日期:2011-01-25 23:11:00 来源:本站整理
<b>办理"每个Y的最新X"问题的SQL语句</b>[MSSQL防范]
本文“<b>办理"每个Y的最新X"问题的SQL语句</b>[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
“每个Y的最新X”是一个经典的SQL问题,工作中常常碰到.假如想要办理此问题,还真是需求开动下头脑残性.当然不是“按Y分组求最新的X值”那么简单,要求最新X的那条记录或主键ID.用一条SQL语句可以简单的办理此问题.
生成实例表和数据:
- --成立表
- CREATE TABLE dbo.Tab
- (
- ID int NOT NULL IDENTITY (1, 1),
- Y varchar(20) NOT NULL,
- X datetime NOT NULL
- )
- GO
- --插入数据
- INSERT INTO Tab(Y, X) values('BBB', '2007-10-23 11:11:11')
- INSERT INTO Tab(Y, X) values('BBB', '2007-10-23 11:11:11')
- INSERT INTO Tab(Y, X) values('BBB', '2007-10-23 10:10:10')
- INSERT INTO Tab(Y, X) values('AAA', '2007-10-23 12:12:12')
- INSERT INTO Tab(Y, X) values('AAA', '2007-10-23 10:10:10')
- INSERT INTO Tab(Y, X) values('AAA', '2007-10-23 11:11:11')
- GO
办理“每个Y的最新X”经典SQL问题:
- --一条SQL语句实现
- SELECT ID, Y, X
- FROM Tab T
- WHERE (NOT EXISTS
- (SELECT 1
- FROM Tab T2
- WHERE (TT2.Y = T.Y) AND (T2.X > T.X OR
- TT2.X = T.X AND T2.ID > T.ID)))
在Y列在成立索引,可以大大优化查询速度.
<以上是“<b>办理"每个Y的最新X"问题的SQL语句</b>[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论