日期:2014-05-17  浏览次数:20811 次

求大侠给一条sql语句 小弟不知道怎么写了
例如有这样一个数据表格:
编号 姓名 性别 级别
001 小张 男 一级
002 小赵 男 一级
003 小张 女 一级
004 小李 女 一级
005 小张 女 一级


我想读取这个表的时候排除重复项 获取如下的列表:
编号 姓名 性别 级别
001 小张 男 一级
002 小赵 男 一级
004 小李 女 一级
005 小张 女 一级

注意了啊  小张是有两个的 性别不同呵呵  视为两条记录 请问这条语句要怎么写啊 
sql 数据表格 重复

------解决方案--------------------
select * from [tb] a where not exists(select 1 from [tb] where 姓名=a.姓名 and 性别=a.性别 and 编号>a.编号)

------解决方案--------------------
1 楼 正 解
------解决方案--------------------
with t1 as
(select *,ROW_NUMBER() over(partition by 姓名,性别 order by 编号 desc) rowid from tb2)
select * from t1 where rowid<>2 order by 编号
------解决方案--------------------
select * from tb2 where 编号 not in(select a.编号 from tb2 a,tb2 b where a.姓名=b.姓名 and a.性别=b.性别 and a.编号<b.编号)
------解决方案--------------------
select
    min(编号) as 编号
    ,姓名
    ,性别
    ,级别
from 表名
group by
    姓名
    ,性别
    ,级别
------解决方案--------------------
赞7楼。
看楼主的意思可能想要MAX(编号) AS 编号
------解决方案--------------------
select max(编号) 编号,姓名,性别,级别 
from table 
group by 姓名,性别 
order by 编号;