Dynamic sql in parameters

Published Jul 10, 2015 | Updated Sep 17, 2022 | 0 comments

프로시저 작성시 IN 조건을 사용하는 경우 동적쿼리로 생성하는 경우가 많았는데

KEY 값 여러개를 파라메터 하나에 실어서 정적쿼리로 구현하는 샘플을 찾아서 남겨본다.

먼저 구분자를 ‘,’ 로 한다고 가정할 경우

프로그램에서 파라메터를 ‘KEY1,KEY2’ 같이 문자열을 구분자로 이어서 보내면

구분자를 기준으로 임시테이블에 담아서 해당 임시테이블을 가지고 조건절에 사용하면 된다

아래는 샘플 쿼리입니다.

DECLARE @KEY_LIST VARCHAR(MAX);
 
    SET @KEY_LIST = 'KEY1,KEY2,KEY3';
 
-- KEY 값을 담을 임시테이블 생성
DECLARE @TEMP TABLE
(
    KEYVALUE VARCHAR(1000) NOT NULL
)
   
IF RIGHT(@KEY_LIST, 1) <> ','
BEGIN
    SET @KEY_LIST = @KEY_LIST + ','
END
 
DECLARE @I INT
    SET @I = CHARINDEX(',', @KEY_LIST)
 
 
WHILE @I > 0
BEGIN
    DECLARE @KEYVALUE VARCHAR(1000)
    SET @KEYVALUE = RTRIM(LTRIM(SUBSTRING(@KEY_LIST, 1, @I - 1)))
 
    INSERT
    INTO
    @TEMP
    VALUES
    (@KEYVALUE)   
 
    SET @KEY_LIST = RTRIM(LTRIM(SUBSTRING(@KEY_LIST, @I + 1, LEN(@KEY_LIST) - @I)))
    SET @I = CHARINDEX(',', @KEY_LIST)
END
 
SELECT *
  FROM @TEMP
;

TAG INFORMATION

Learn more on this topic

Related Blog Posts

Join in the conversation

Leave a Comment

0 Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

무료 온라인 전광판

전광판

텍스트를 입력하고 텍스트 효과 및 배경효과 를 변경해서 전체화면으로 표시할 수 있는 전광판 용도로 사용하실 수 있습니다. 각종 스포츠 및 공연 관람시 응원 용도로 사용이 가능합니다.

Carousel

여러개의 슬라이드를 추가하여 프레젠테이션 및 이미지 슬라이드 용도로 사용하실 수 있습니다. 브라우저가 포함된 IT 기기로 큰 모니터에 연결하여 매장 내 공지사항 및 메뉴소개를 이미지로 표시할 수 있습니다.

Pin It on Pinterest

Shares
Share This

Share This

Share this post with your friends!

Shares