지난 번에 동적 쿼리에 대해서 포스팅 한 적이 있는데.
금번에 지난 번 처럼 동적 쿼리를 사용하여야 하고 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 |