2017-12-15 2 views
1

조건을 기반으로 레코드를 반입 할 수 있습니까? 조건이 충족되지 않으면 테이블의 모든 레코드를 표시해야합니다.테이블의 전체 또는 특정 행을 선택하십시오.

예를 들어, 고객 ID는 1,2,3,4입니다. 내가 조건 1에서 c_id로 1을 주면, 그 특정 레코드를 표시해야합니다. 내가 5를 c_id로 주면 테이블의 모든 레코드를 표시해야합니다. 단일 쿼리로 달성 할 수 있습니까?

다음은 내가 시도한 쿼리입니다.

SELECT case 
WHEN c_id in ('6') then 1   
     else 0 
     END as y from customer 
+0

1) 당신은 아마 같은이 "테이블에서 모든 또는 특정 행을 선택"이 질문의 제목을 변경하는 것을 고려한다. – Jakub

답변

1

이 같은 뭔가를 시도 할 수 있습니다 :

select * 
from customer 
where c_id = 6 

union all 

select * 
from customer 
where not exists (
    select null 
    from customer 
    where c_id = 6 
) 
+0

감사합니다. @Jakub –