您的位置:程序门 -> ms-sql server -> 应用实例



如何在查询结果集中屏蔽相同的行?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


如何在查询结果集中屏蔽相同的行?[已结贴,结贴人:czh101]
发表于:2007-05-22 19:31:29 楼主
问题是这样的
我在数据库中有一个考勤表kqdata,如下:
姓名       部门代码             时间
张三       关务部               13:01
李四       关务部               13:12
王五       关务部               13:13
张三       关务部               13:12


我想得到的查询结果中只要一个张三的记录,如下:
张三       关务部               13:01
李四       关务部               13:12
王五       关务部               13:13
发表于:2007-05-22 19:37:471楼 得分:20

create   table   kqdata(姓名   varchar(10),部门代码   varchar(20),时间   varchar(10))
insert   kqdata   select   '张三 ', '关务部 ', '13:01 '
union   all   select   '李四 ', '关务部 ', '13:12 '  
union   all   select   '王五 ', '关务部 ', '13:13 '  
union   all   select   '张三 ', '关务部 ', '13:12 '  

select   *   from   kqdata   a   where   not   exists

select   1   from   kqdata   where   姓名=a.姓名   and   时间 <a.时间
)

/*
姓名                   部门代码                                   时间                  
----------   --------------------   ----------  
张三                   关务部                                     13:01
李四                   关务部                                     13:12
王五                   关务部                                     13:13

(所影响的行数为   3   行)
*/
发表于:2007-05-22 19:47:482楼 得分:0
select   *   from   表   as   t
where   id   > (select   min(id)   from   表   where   重复数据的字段=t.重复数据的字段)
发表于:2007-05-23 13:01:463楼 得分:0
select   *   from   t   a   where   not   exists

select   1   from   t   where   姓名=a.姓名   and   时间 <a.时间
)


快速检索

最新资讯
热门点击