[MSSQL] LIKE 문에서 변수를 사용하는 방법

회사 상무님께서 내부 DB 에 있는 개별 기업 주가 데이터를 조회 할 수 있는 쿼리를 간단하게 만들어 달라고 요청하셔서 뭐 일도 아니니까 후딱 짜드리려고 했는데..

상무님이 쿼리에 익숙하지 않으니까 저한테 요청한 것이고, 그렇다면 개별 주식 종가를 검색 할 때 표준코드 뿐만 아니라 회사명으로 검색해도 결과를 찾을 수 있도록 하는게 좋을 것 같다는 생각이 들었습니다.

WHERE CORPNAME LIKE '%삼성%'

보통 LIKE 조건은 위와 같이 사용하잖아요? 그런데 여기에 변수를 선언해서 넣으려면 어떻게 해야 할까요.

정답은 바로 아래와 같습니다.

DECLARE @TDATE AS DATETIME;
DECLARE @CORPID AS VARCHAR(12);
DECLARE @CORPNAME AS VARCHAR(20);

SET @TDATE = '2023-08-10';
SET @CORPID = '';
SET @CORPNAME = '삼성';

SELECT * FROM [DB와 테이블]
WHERE TDATE=@TDATE AND (CORPID=@CORPID OR CORPNAME LIKE '%'+@CORPNAME+'%')

아무래도 쿼리에 익숙하지 않으신 분이라 변수를 입력해 사용하실 수 있도록 하는 것이 더 도움이 될 것 같아 보였고, 그래서 위와 같이 쿼리를 만들어 드렸습니다. 여기서 핵심은 바로 CORPNAME LIKE '%'+@CORPNAME+'%' 이 부분입니다.

LIKE 문에서 % 를 사용하는데 그 안에 특정 키워드를 변수로 넣을 때는 %+ 를 이용해 넣어 주면 되더라구요. 아마 자바 스크립트인지 jQuery 에서도 이런 식으로 썼던 것 같은데 맞나요?

아무튼 이렇게 간단하게 문제 해결 완료!

끝.