프로시저를 만들다 이상한 점을 발견해서 문의 드립니다.
인자값은 number 와 varchar2 로 받고 아래와 같은 쿼리로 조회를 합니다.
T_ID IN NUMBER, T_RSLT_CD VARCHAR2 -- 인자값
SELECT * FROM TBL WHERE T_ID = 2016012201 -- NUMBER AND T_RSLT_CD = '050' -- VARCHAR2 이렇게 하면 조회가 되는데 T_RSLT_CD 값을 부정조건으로( T_RSLT_CD != '050', T_RSLT_CD <> '050' ) 변경하면 조회가 안됩니다. 이런경우는 처음이라 좀 당황스러운데 부정조건으로 조회할수 있는 해결방법이 없을까여?
급해서 내용을 부실하게 적었네여;;
일단 데이터들은 아래와 같은 형태로 들어가 있습니다.
WITH T AS (
SELECT 20160129 AS T_ID, '050' AS T_RSLT_CD, 'JM' AS T_CD FROM DUAL UNION ALL
SELECT 20160129 AS T_ID, '' AS T_RSLT_CD, 'JM' AS T_CD FROM DUAL UNION ALL
SELECT 20160129 AS T_ID, '010' AS T_RSLT_CD, 'JM' AS T_CD FROM DUAL UNION ALL
SELECT 20160129 AS T_ID, '020' AS T_RSLT_CD, 'JM' AS T_CD FROM DUAL UNION ALL
SELECT 20160129 AS T_ID, '030' AS T_RSLT_CD, 'JM' AS T_CD FROM DUAL UNION ALL
SELECT 20160129 AS T_ID, '' AS T_RSLT_CD, 'JM' AS T_CD FROM DUAL UNION ALL
SELECT 20160129 AS T_ID, '' AS T_RSLT_CD, 'JM' AS T_CD FROM DUAL
)
SELECT T_ID, T_RSLT_CD FROM T
WHERE T_ID = 20160129
AND T_RSLT_CD != '050'
AND T_CD ='JM'
T_RSLT_CD 값이 050 아닌것들을 구하고 싶은데 T_RSLT_CD 값들이 NULL 이면 조회가 안되고 값이 있으면 조회가 되는상황인데 도통 모르겠네여;;