2014-11-17 2 views
0

값이있는 경우에만 조건을 적용하려면 SQL 쿼리가 필요합니다. 예를 들어.값이있는 경우 조건을 취할 SQL 쿼리

select * from person where state = "AD" and city = "visag" 

가 반환 0 행

내가 쿼리는 '상태 = "AD"와 도시를 = "visag"'적용 할 것

sl  Name   city  state 
-------------------------------------- 
1  xxxxxxxx  chennai  TN 
2  yyyyyyyy  coimbatore TN 
3  zzzzzzzz  cochin  KL 

다음 쿼리를 고려 테이블 사람을 고려 if state = "AD"가 표시됩니다.

단일 선택 쿼리에서이 작업을 수행 할 수있는 방법은 무엇입니까?

+2

그리고 경우를 제시하지? –

+0

(존재하지 않는 경우) 해당 조건을 건너 뛰고 달리 존재하지 않는 경우 모두 – Gowsikan

답변

0
select * from person 
where state = "AD" and city = "visag" 
or (select count(*) from person where state = "AD") = 0 
1

여부 'AD' 존재 여부는 또 다른 조건 :

select * 
from person 
where (state = 'AD' and city = 'visag') 
or not exists 
(
    select * 
    from person 
    where state = 'AD' 
); 
+0

+1을 선택하면 다른 조건을 적용하십시오. 내 경험상 더 나은 성능을 제공하고 쿼리를 더 읽기 쉽게 만듭니다. – dubes

관련 문제