假设有表TableA
字段有UserName    UserType
张三        0
李四        0
张三        1
美女        1
美女        0我想查询的时候,如果UserType有0的优先取0的那条记录,如果没有的就看看有没有1的,
取1的记录,例如,张三有两条记录,我只想取0那条,其他只有一条的话就直接取想取得下面的效果
UserName    UserType
张三        0
李四        0
美女        0

解决方案 »

  1.   

    select *
    from tb t
    where
      not exists(select 1 from tb where username=t.username and usertype<t.usertype)
      

  2.   

    select * from tt where UserType='0'
    union
    select * from tt a where UserType='1' and not exists(select UserName from tt
    where  UserType='0' and a.UserName =UserName )
      

  3.   

    or
    select * from bh1 where UserType='0' 
    union 
    select A.* from bh1 a 
    left join (select * from bh1 where UserType='0' ) b on a.UserName =b.UserName
    where a.UserType='1' AND B.UserName IS NULL
      

  4.   

    直接select UserName,min(UserType)
    from yourTable
    group by UserName应该得到你需要的结果啊。
    UserName  UserType
    张三    0
    李四    0
    美女    0
      

  5.   

    select UserName,min(UserType)
    from TableA 
    group by UserName