:변수 질문입니다. 0 5 1,581

by 모델장윤주 [2014.05.16 16:52:05]


toad에서 질문입니다.

 

프로그램이랑 연동해서 어떤 특정값을 토드로 넘겨주었습니다.

:a_select 이 값에  O이면

1이라는 SQL SELECT문을 실행하고

O가 아니면

2라는 SQL SELECT문을 실행하게 하고 싶은데

CASE문으로 조건을 줄 수 있나요 ?

현재까지 해본 방법은...

( CASE WHEN :a_select THEN ( CASE ~ 셀렉트문 ~ END ) ELSE ( CASE ~ 셀렉트문 ~ END ) END 이렇게 되어있는데 :a_select부분 조건이 맞지 않는 오류가 나서

:a_select = "O" , "O" = :a_select , '' sss = :a_select 등등.. 기타 생가나는 방법들을 써봤는데 생각대로 되질 않네요

:a_select값이 O인지 O가 아닌지 판단할 수 있는 조건을 저 상태에서 만들 수 있나요 ??

 

 

 

by DarkBee [2014.05.16 17:00:59]

SELECT *
  FROM t1
 WHERE :val = 'O'
 UNION ALL
SELECT *
  FROM t1
 WHERE :val != 'O'

 


by 모델장윤주 [2014.05.16 17:36:59]

답변감사합니다!

그런데 제가 설명해주신 부분을 잘 이해를 하지 못하겠네요..

조금만 더 쉽게 설명해주실수있을까요?ㅠ


by DarkBee [2014.05.16 17:40:12]
SELECT *
  FROM t1
 WHERE :val = 'O'     -- 'O'일때 정상처리됨

 UNION ALL

SELECT *
  FROM t1
 WHERE :val != 'O'   -- 'O' 가 아닐때 정상처리됨

 


by 모델장윤주 [2014.05.16 17:44:14]

아 아뇨.... 작성해주신 소스는 이해가 갔는데

CASE WHEN :a_select THEN ( CASE ~ 셀렉트문 ~ END ) ELSE ( CASE ~ 셀렉트문 ~ END ) END 

 

이 부분에 어떻게 응용을 해야 될지 잘 몰라서요

CASE WHEN 다음에 나오는 :a_select 부분에 주신 소스도 넣어보고 테스트 해봤지만

맞는 방법이 없는 것 같아서...조금 더 찾아보도록 하겠습니다.

 

아 :a_select 구문에

 

( select 'O' a from dual ) = :a_select 이렇게 해서 처리하긴 했는데

나머지 조건도 맞춰보고 다시 답변 달겠습니다. ( 혹시 저 처럼 모르는 분이 계실지도 몰라서... )


by 웅 [2014.05.17 19:33:45]

 CASE WHEN :a_select = 'O' THEN ( 셀렉트문 )
            ELSE (셀렉트문 )
 END

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입