百分求一句SQL简单的语句,年纪大了,想半天也想不起来怎么弄

iorikingdom 2009-09-04 05:00:46
假设有表TableA
字段有

UserName UserType
张三 0
李四 0
张三 1
美女 1
美女 0

我想查询的时候,如果UserType有0的优先取0的那条记录,如果没有的就看看有没有1的,
取1的记录,例如,张三有两条记录,我只想取0那条,其他只有一条的话就直接取

想取得下面的效果
UserName UserType
张三 0
李四 0
美女 0


...全文
66 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingkongpiaoyi5 2009-09-04
  • 打赏
  • 举报
回复
select UserName,min(UserType)
from TableA
group by UserName
ACMAIN_CHM 2009-09-04
  • 打赏
  • 举报
回复
直接

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


应该得到你需要的结果啊。
UserName UserType
张三 0
李四 0
美女 0
WWWWA 2009-09-04
  • 打赏
  • 举报
回复
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
wwwwb 2009-09-04
  • 打赏
  • 举报
回复
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 )
百年树人 2009-09-04
  • 打赏
  • 举报
回复
select *
from tb t
where
not exists(select 1 from tb where username=t.username and usertype<t.usertype)

56,682

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧