by 짱구 [SQL Query] oracle query case decode where if else [2016.06.09 17:13:37]
안녕하세요.
SELECT
*
FROM
DUAL
WHERE
CASE
WHEN
'Y'
=
THEN
C =
'6'
ELSE
C <>
END
여기서 select * from dual은 문장 구색 맞출려고 쓴거구요
where case when 'Y' = 'Y' <= 앞 'Y' 는 입력 받는 값입니다.
** 따라서 입력에 따라 조건을 달리 하고 싶습니다.
어떤 방법이 있는지 알려주시면 고맙겠습니다.
감사합니다.
((:VAL =
AND
)
OR
(:VAL !=
))
멍청한 옵티마이저가 or 조건 많아지면 엉뚱한 실행계획 타는 경우가 있어서
되도록 그냥 쿼리 string 만들 때 조건에 따라 조건절이 달라지게 만드는 게 좋고..
그렇게 안 하려면 위 쿼리처럼 or 조건 사용하세요.
1 =
C=
1
!=
C<>
이것도 되지않을까여?