2009-10-15 5 views
1

조건이 충족 될 때 선택 쿼리에 열을 표시하고 조건이 일치하지 않을 때 열을 표시하지 않는 것이 좋습니다. 예를 들어선택 쿼리에서 조건이 일치하지 않을 때 열 무시 - SQL-Oracle

: XYZ

Name ID Fairness 
------ -- -------- 
harish 3 White 
ravi 5 brown 
arun 2 black 
rahul 5 white 

이 검색어 :

select name, 
     case id when 5 then " I Like to learn more languages" end as Remarks, 
     Fairness 
from xyz 
where id=2 

내 요구 사항은 위의 질의에 "설명"열이 표시되지 않아야

다음이 간단한 표에서 출력은 있지만 출력은

실제 출력 :

Name Remarks Fairness 
---- ------- -------- 
arun null  black 

예상 출력 : ID가 where 절에서 5 인 ​​경우

Name Fairness 
---- -------- 
arun black 

즉, 내가에만 표시 할 비고란이 필요합니다.

조건이 충족되지 않거나 충족되지 않으면 "비고"를 무시하십시오.

+0

어떤 조건에서 해당 쿼리를 호출 하시겠습니까? –

답변

0

SQL COALESCE 기능을 원하십니까?

select coalesce(myMaybeNullColumn, '') from foo 

은 널 대신 공백을 제공합니다.

0

쿼리에 else 조건을 추가하기 만하면 표시하지 않으려는 사례가 비어있게됩니다.

select name,case id when 5 then " I Like to learn more languages" else "" end as Remarks, Fairness from xyz where id=2 
+0

그는 "id가 ​​5 인 경우에만 표시 할 비고 열이 필요합니다."라고 덧붙입니다. "else" "를 추가하면 비어있는 열이 표시됩니다. –

+0

사실, 오해했습니다. 그런 다음 저장 프로 시저를 사용하지 않고 선택을 수행하는 것은 불가능합니다. 어쩌면 새 열을 만드는 대신 기존 열에 설명을 추가 할 것입니다 (물론 해당 요구 사항을 충족하는 경우). – pedromarce

+0

그래, 내가보기에는 그의 문제가 보이지 않는다. 왜냐하면이 코드를 prgrammcode에서 선택하면 그 곳에서 두 번째 열의 내용을 확인할 수 있기 때문이다. 그리고 pl/sql에서는 실제로 문제가되지 않습니다. –

관련 문제