MSSQL 쿼리 질문 드립니다. 0 2 454

by OZmaster [SQL Query] mssql [2021.06.23 15:52:07]


2개의 테이블을 join 해야 하는 상황인데, 

A 와 B 가 있다고 칠게요.

 

A 의 key 가 되는 ID 는 1, 2, 3... 처럼 숫자고요,

B 에는 A의 key 를 담는 컬럼이 아래처럼 생겼습니다.

4, 5, 6

네, 맞습니다. 키를 하나가 아닌 여러개를 담도록 string 으로 콤마로 구분해 저장했습니다.

 

이런 경우 select * from A where key in (select keys from B where ...) 같은 형식으로 쿼리가 가능할지 아시는 분 계실까요?

 

 

by 마농 [2021.06.23 16:50:46]
WITH code_t AS
(
SELECT 1 cd, 'A' nm
UNION ALL SELECT 2, 'B'
UNION ALL SELECT 3, 'C'
UNION ALL SELECT 4, 'D'
UNION ALL SELECT 5, 'E'
)
, data_t AS
(
SELECT 1 id, '1,2,3' cds
UNION ALL SELECT 2, '2,5'
)
SELECT *
  FROM data_t a
 INNER JOIN code_t b
    ON CHARINDEX(CONCAT(',', b.cd, ','), CONCAT(',', a.cds, ',')) > 0
;

 


by OZmaster [2021.06.23 17:14:01]

감사합니다!

주신걸로 일단 연구해보겠습니다.

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