본문 바로가기

동적쿼리

[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 임시.. 더보기
[SQL] 동적쿼리 금번 작업을 하면서 고민을 하게 만드는 요청을 받았다. 요청 사항을 정리하면 1. 정렬 DB에서 한다.1-1. 정렬할 대상(컬럼)은 서버로 부터 전달 받는다.1-2. 정렬할 대상(컬럼)에 대해서 오름/내림 차순에 대한 결정도 서버로 부터 받는다. 2. 일정 갯수만을 반환한다.2-1. 페이지 개념을 적용한다. 2-2. 정렬된 값에서 요청 받은 페이지의 약속된 열만큼을 반환해야 한다. ※ 이 글을 읽는 분들은 더 좋은 해답이 있다면 언제든 조언을 부탁드립니다. 일단 서버로 부터 받는 인자는 @정렬기준(대상컬럼) TINYINT, @정렬방법(오름/내림) TINYINT, @페이지크기 INT, @페이지넘버 INT를 받는다. 동적쿼리는 문자열을 만들어서 그것을 실행(EXEC) 하는 것이기 때문에 지역 변수들은 NVA.. 더보기