34,594
社区成员
发帖
与我相关
我的任务
分享
DECLARE @a TABLE(ID INT,ROWID CHAR(3),d DATETIME )
INSERT @a SELECT 2 ,'001','2013-06-01 09:12:31'
UNION ALL SELECT 119 ,'001' ,'2013-06-01 09:12:31'
UNION ALL SELECT 526 ,'001' ,'2013-05-21 11:33:17'
SELECT * FROM @a a
WHERE NOT EXISTS(SELECT 1 FROM @a WHERE ROWID=a.ROWID
AND CONVERT(VARCHAR(20),d, 120)+RIGHT(10000+id,4)> CONVERT(VARCHAR(20),a.d, 120)+RIGHT(10000+a.id,4))
--result
/*ID ROWID d
----------- ----- ------------------------------------------------------
119 001 2013-06-01 09:12:31.000
(所影响的行数为 1 行)
*/
declare @T table([ID] int,[ROWID] varchar(3),[datetime] datetime)
insert @T
select 2,'001','2013-06-01 09:12:31' union all
select 119,'001','2013-06-01 09:12:31' union all
select 526,'001','2013-05-21 11:33:17'
;WITH maco AS
(
SELECT ROW_NUMBER() OVER(PARTITION BY rowid ORDER BY [datetime] DESC ,id desc) AS rid, * from @T
)
SELECT [ID],[ROWID],[datetime] FROM maco WHERE rid=1
/*
ID ROWID datetime
----------- ----- -----------------------
119 001 2013-06-01 09:12:31.000
*/
if object_id('[tb]') is not null drop table [huang]
go
create table [tb]([ID] int,[ROWID] varchar(3),[datetime] datetime)
insert [tb]
select 2,'001','2013-06-01 09:12:31' union all
select 119,'001','2013-06-01 09:12:31' union all
select 526,'001','2013-05-21 11:33:17'
select * from tb where id=(
select max(id) from tb where datetime =(
select max(datetime) from tb
))
drop table tb
------------
ID ROWID datetime
----------- ----- -----------------------
119 001 2013-06-01 09:12:31.000
(1 行受影响)