首页 新闻 搜索 专区 学院

求SQL语句

0
悬赏园豆:50 [已解决问题] 解决于 2010-10-22 21:31

某个表T

Name   IsHidden
====================
A  0
B  0
B  1
C  1
D  1
D  0

欲求如下结果集:每个Name取一个值,如果有记录IsHidden=0(未隐藏),则取该行。如果没有IsHidden=0的,只有IsHidden=1的,如上面的C,则取该行。使得求出的结果如下:

Name   IsHidden
====================
A  0
B  0
C  1
D  0

有没有办法直接用SQL求出呢?

山不转水转...的主页 山不转水转... | 初学一级 | 园豆:102
提问于:2010-10-22 17:05
< >
分享
最佳答案
0

如下:

select Name, IsHidden from T as tt

where IsHidden=0 or

((select count(1) from T where tt.Name = Name and IsHidden=0)=0

   and IsHidden=1)

收获园豆:45
wang_yb | 老鸟四级 |园豆:3499 | 2010-10-22 17:24
其他回答(1)
0

select [Name],case min([IsHidden]) when 0 then 0 else 1 end from t
group by [name]

 

收获园豆:5
写代码的小2B | 园豆:4355 (老鸟四级) | 2010-10-22 17:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册