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

SSMS 에서 키보드 단축키로 테이블 데이터 조회하기

SSMS 에서 키보드 단축키로 테이블 데이터 조회하기

이전에 작성한 내용은 모든 DataSource 에 SP 를 추가해야 하는 단점이 있습니다. 그래서 다시 구글링 해보니 더 편리한 방법이 있네요 저장 프로시저 영역에 쿼리를 다음과 같이 작성하면 됩니다. 그 다음 쿼리편집기에서 테이블 명을 선택한 다음 바로 가기 키를 입력하면 해당 테이블이 바로 조회가 됩니다. 훨씬 편리합니다. 언제부터 된 걸까요? 타이틀에 저장 프로시저라고 되어 있으니 저장 프로시저만 해야 하는줄.... 이전 방식 – 추천하지 않습니다. 궁금하면 더보기 다시...

read more

Delete MSSQL Management Studio AutoLogin Info

MSSQL Management Studio 자동로그인 정보 지우기 필요에 의해 하나의 계정만 주로 사용할때, 기존에 저장된 정보 지우고 하나만 다시 추가해서 사용. 아래 경로에서 퍼옴 http://stackoverflow.com/questions/1059105/how-to-remove-server-name-items-from-history-of-sql-server-management-studio 요약 : Windows 7 기준...

read more

MS SQL Management Studio 2008 R2 IntelliSense HotFix

자동완성이 안되서 걍 참고 있었는데… 그래도, 혹시나 해결방법이 있나 찾아보자 해서.. 결국 찾았따 MS 에서 이미 알고 있던터라 HotFix 형태로 나와있네(http://support.microsoft.com/kb/2531482/) 원인은 VS 2010 SP1 을 깔아서 생긴 충돌이라하네… ㅡ,.ㅡ 아직 Service Pack 나온건 아니라서 HotFix 만 별도로 요청해서 받아야 하더라… Hot Fix 요청은 여기서...

read more

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