首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

取出标题不同的文章解决办法

2012-03-25 
取出标题不同的文章表:IDTitle[Date]1ABCDE 2012-3-12ABC2012-3-13ABC2012-3-34ABCD2012-3-45ABC

取出标题不同的文章
表:
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

[解决办法]

SQL code
select * from tb twhere 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)

SQL code
ID          Title                          Date----------- ------------------------------ ------------------------------3           ABC                            2012-3-34           ABCD                           2012-3-46           ABCDE                          2012-3-2(3 行受影响)
[解决办法]
--or
SQL code
--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-4declare @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-24           ABCD                           2012-3-43           ABC                            2012-3-3(3 行受影响) 

热点排行