본문 바로가기

DataBase/SQL

[SQL] 동적쿼리와 like 구문.


 지난 번에 동적 쿼리에 대해서 포스팅 한 적이 있는데.

금번에 지난 번 처럼 동적 쿼리를 사용하여야 하고 like 구문을 사용해야 하는 상황에 직면하게 되었다.


요청은 간단하다.


 1. 대상인 닉네임 첫 글자를 받는다.

 2. 이로 대상을 찾는 SP가 필요하다. 


그러하다. 간단한데 일반적인 like 구문은

 select * from table_user where name like '홍길%'; 


이러한 식이기 때문에 '홍길'을 인자로 받아야 하는 입장에서는 동적쿼리를 고민하지 않을 수 없다.


머 대단한 건 아니고...


방법은 


DECLARE 임시변수 nvarchar(17)

SET 임시변수 = convert(nvarchar(17), 전달받는 문자열) + '%'

SELECT * FROM 테이블 WHERE 컬럽 LIKE 임시변수; 


이렇게 하면 된다. 


다시 예를 들면 


DECLARE @TEMP nvarchar(17)

SET @TEMP = convert(nvarchar(17), @INPUT_NAME) + '%'

SELECT * FROM TABLE_USER WHERE NAME LIKE @TEMP; 


이렇다. 

'DataBase > SQL' 카테고리의 다른 글

[SQL] 작업 스케줄러  (0) 2013.03.22
[SQL] 컬럼에 제약 조건 추가.  (0) 2013.03.07
[SQL] 인덱스 (클러스터, 비클러스터) 개념  (0) 2013.02.26
[SQL] 테이블 변수  (0) 2013.02.13
[SQL] ALTER TABLE  (0) 2013.02.13