[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 에서도 이런 식으로 썼던 것 같은데 맞나요?
아무튼 이렇게 간단하게 문제 해결 완료!
끝.
댓글 남기기