2010-07-24 57 views
0

的价值一定行我有一个表,它类似于:SQL查询仅返回取决于

cycle | id | name 
------|-------|------ 
0  | 0012 | bob 
s  | 0012 | bob 
1  | 0012 | bob 
0  | 6208 | sally 
1  | 6208 | sally 
0  | 3276 | jane 
s  | 3276 | jane 
1  | 3276 | jane 
0  | 8736 | harry 
s  | 8736 | harry 

我需要一个查询,这将导致:

cycle | id | name 
------|-------|------ 
s  | 0012 | bob 
0  | 6208 | sally 
s  | 3276 | jane 
s  | 8736 | harry 

因此,只有回归具有“循环”值“s”的行,除非特定“id”没有“s”的值,在这种情况下,它应该返回具有“循环”值“0”的行。

回答

0
SELCET cycle, id, name from tbl1 as t1 where cycle='s' or 
(cycle=0 and (select count(cycle) from tbl1 as t2 where t2.id = t1.id and t2.cycle='s') <= 0) 
group by t1.cycle,t1.id;