쿼리 질문드립니다 0 2 655

by DB초보자입니다 [SQL Query] [2017.04.19 14:11:51]


프로시저에서 특정 조건일때

V_GB :='1,2,3,4,5'이런식으 변수에 값을 할당하는데

조건절에 

SELECT * FROM TEMP
WHERE GB IN (V_GB)

위의 식으로 해놨는데 위의식으로 해놓으니 실제 사용자는

SELECT * FROM TEMP WHERE GB IN ('1','2','3','4','5')결과값을 원한는데 실제로는 '1,2,3,4,5'이런식으로 조건이 걸려서 하나도 데이터가안나오더라구요

혹시 이걸 in 조건에 걸리게 할 수있을까요???

 

by jkson [2017.04.19 14:29:21]
select b.* 
  from
    (select regexp_substr(:v_gb,'[^,]+',1,level) gb
      from dual 
   connect by level <= regexp_count(:v_gb,',') + 1) a 
    , temp b
where b.gb = a.gb

 


by DB초보자입니다 [2017.04.19 14:37:56]

감사합니다.ㅇ

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