Where 절내의 다중조건(in) 0 4 7,047

by KoreaOrcl [PL/SQL] PL-SQL IN [2011.01.31 18:18:21]



SELECT SETNO, SETVALUE, BIGO
  FROM ACTX041TD
    WHERE BILL_DT BETWEEN :billdtFrom AND :billdtTo
  AND FOUND_BIZ_NO IN (:STD);

billdtFrom  : '20101201'
billdtTo : '20101231'
STD :'1108205953', '1358202687'

방법이 없을까요???
몇시간동안 이것만,,ㅠㅠ
by camela [2011.01.31 19:58:01]
STD :'1108205953,1358202687'

STD 값이 위와 같이 들어간다고 가정하고 아래처럼 하면 됩니다.

SELECT SETNO, SETVALUE, BIGO
FROM ACTX041TD
WHERE BILL_DT BETWEEN :billdtFrom AND :billdtTo
AND FOUND_BIZ_NO IN (select regexp_substr(:STD,'[^,]+',1,level) as val
from dual
connect by level <= length(regexp_replace(:STD,'[^,]')) + 1);

by camela [2011.01.31 20:04:47]
found_biz_no 컬럼이 필터 조건이라면 아래처럼 해도 됩니다.

and instr(:STD, FOUND_BIZ_NO) > 0

by 채용근 [2011.01.31 21:34:25]
동적쿼리로 처리하세요-

by KoreaOrcl [2011.02.01 09:28:02]
아~ 감사합니다...^^
새해 복 많이 받으세요...^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입