[MSSQL] WHERE 조건에 배열 넣는 방법(Feat. STRING_SPLIT 활용)

·2022년 9월 20일
0

Array를 WHERE 조건에 넣어야 했다. Array를 ',' 기준으로 구분한 뒤 하나씩 WHERE 조건에 넣는 방법도 생각했으나, 이 경우 SELECT 문을 여러 번 실행해야 할 뿐 아니라, ORDER BY 가 원하는 대로 실행되지 않을 것이라 판단해 다른 방법을 강구하였다.

❓ STRING_SPLIT

STRING_SPLIT 함수는 특정 구분자를 기준으로 string을 분리해, 테이블 형식으로 반환해주는 함수이다.

✅ 사용 예제


1. 'A,B,C' 호출

DECLARE @ARRAY VARCHAR(100) = 'A,B,C'
SELECT @ARRAY


2. 'A,B,C' 를 ',' 기준으로 구분해 호출

SELECT * FROM STRING_SPLIT(@ARRAY, ',')

❗ 주의할 점

버전 때문에 STRING_SPLIT 함수 사용이 안되는 거인 줄 알았는데, 내가 사용을 잘못한 거였다.

WHERE 컬럼명 = STRING_SPLIT(@ARRAY, ',')

테이블 형식으로 반환해주기 때문에 위와 같이 사용할 경우 에러가 발생한다.

참고 :
STRING_SPLIT 참고 URL1
STRING_SPLIT 참고 URL2

profile
🎨

0개의 댓글