日期:2014-05-18 浏览次数:20469 次
select * from tb t where not exists (select 1 from tb where t.title = title and t.date>date)
------解决方案--------------------
--ID Title [Date]
--1 'ABCDE' 2012-3-1
--2 'ABC' 2012-3-1
--3 'ABC' 2012-3-3
--4 'ABCD' 2012-3-4
--5 'ABC' 2012-3-2
--6 'ABCDE' 2012-3-2
--只取出Title不同的文章,如果是遇到文章相同只取出一次,而且要取日期最大的那个
--结果应该是
--ID Title [Date]
--6 'ABCDE' 2012-3-2
--3 'ABC' 2012-3-3
--4 'ABCD' 2012-2-4
declare @t table (ID int,Title varchar(30), [Date] varchar(30) )
insert into @t values(1, 'ABCDE', '2012-3-1' )
insert into @t values(2, 'ABC', '2012-3-1' )
insert into @t values(3 ,'ABC' ,'2012-3-3' )
insert into @t values(4 ,'ABCD', '2012-3-4' )
insert into @t values(5 ,'ABC' ,'2012-3-2' )
insert into @t values(6 ,'ABCDE', '2012-3-2' )
select * from @t t
where not exists
(select 1 from @t where t.Title = title and t.Date<Date)
ID Title Date ----------- ------------------------------ ------------------------------ 3 ABC 2012-3-3 4 ABCD 2012-3-4 6 ABCDE 2012-3-2 (3 行受影响)
------解决方案--------------------
--or
--ID Title [Date] --1 'ABCDE' 2012-3-1 --2 'ABC' 2012-3-1 --3 'ABC' 2012-3-3 --4 'ABCD' 2012-3-4 --5 'ABC' 2012-3-2 --6 'ABCDE' 2012-3-2 --只取出Title不同的文章,如果是遇到文章相同只取出一次,而且要取日期最大的那个 --结果应该是 --ID Title [Date] --6 'ABCDE' 2012-3-2 --3 'ABC' 2012-3-3 --4 'ABCD' 2012-2-4 declare @t table (ID int,Title varchar(30), [Date] varchar(30) ) insert into @t values(1, 'ABCDE', '2012-3-1' ) insert into @t values(2, 'ABC', '2012-3-1' ) insert into @t values(3 ,'ABC' ,'2012-3-3' ) insert into @t values(4 ,'ABCD', '2012-3-4' ) insert into @t values(5 ,'ABC' ,'2012-3-2' ) insert into @t values(6 ,'ABCDE', '2012-3-2' ) select * from @t c where Date=(select MAX(Date) from @t where c.Title=Title) ID Title Date ----------- ------------------------------ ------------------------------ 6 ABCDE 2012-3-2 4 ABCD 2012-3-4 3 ABC 2012-3-3 (3 行受影响)