in조건절 질문드립니다. 0 1 504

by 퇴근하고싶다 [Oracle 기초] [2019.03.15 13:21:11]


안녕하세요.

조건절in에서 출력방법 질문드립니다.

테이블 있습니다.

id name
aaa 홍길동
bbb 이순신
ccc 안중근
ddd 안창호

select *

from hobby

where id in('홍길동','홍길동',,'홍길동','이순신','이순신')

id name
aaa 홍길동
aaa 홍길동
aaa 홍길동
bbb 이순신
bbb 이순신

이런식으로 in조건처럼 출력되고 싶습니다.

 

감사합니다.

 

by 우리집아찌 [2019.03.15 14:02:12]
WITH T ( ID , NM )AS (
SELECT 'AAA' , '홍길동' FROM DUAL UNION ALL
SELECT 'BBB' , '이순신' FROM DUAL UNION ALL
SELECT 'CCC' , '안중근' FROM DUAL UNION ALL
SELECT 'DDD' , '안창호' FROM DUAL 
), T_IN ( TXT ) AS (
SELECT '홍길동,홍길동,홍길동,이순신,이순신' FROM  DUAL
)
  
SELECT A.ID
     , A.NM
  FROM T A
     , ( SELECT REGEXP_SUBSTR(TXT,'[^,]+',1,LEVEL ) NM
           FROM T_IN
        CONNECT BY LEVEL <= ( SELECT REGEXP_COUNT(TXT,',') FROM T_IN ) + 1 
        ) B
  WHERE A.NM = B.NM        

 

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