mssql 공통문자열 처리 include같은 기능 없나요? 0 3 828

by dbdb [SQLServer] [2018.01.04 10:07:09]


mssql 프로시저중 공통으로 반복되는 문자열이있습니다.

상단에 공통으로 빼서 한군데서만 수정을 하고싶은데 공통으로 처리할수 있는 방법이 있을까요?

 

ex) ('a','b','c','d','e') 부분이 하단 쿼리에 많이사용되서 제일상단에 공통으로 빼서 처리하려고합니다. (f가 추가된다고할때 이부분만 수정하면 전부 바뀌기 때문에)

declare @code varchar(2000)
set @code = ('a','b','c','d','e') -->이런식으로 하고싶은데 방법이있을까요?

 

 

 

 

by 마농 [2018.01.04 10:32:02]
-- 1. 임시테이블 생성
DECLARE @code TABLE(cd VARCHAR(1));
-- 2. 임시테이블에 값 입력
INSERT INTO @code VALUES ('a'), ('b'), ('c'), ('d'), ('e');
-- 3. 임시테이블 사용
SELECT *
  FROM ttt
 WHERE cd IN (SELECT cd FROM @code)
;

하나의 프로시져라면 소스내에서 임시테이블 사용해도 되지만
여러 프로시져에서 공통으로 쓰인다면?
소스코드 상단에에 임시테이블로 추가하는 것보다는
아예 실제 테이블을 생성해 두고 사용하시는게 좋을 듯 하네요.


by 우리집아찌 [2018.01.04 12:57:16]

파라미터로 넘기셔서 처리하면 되지않을까요?


by dbdb [2018.01.04 15:05:16]

테이블은 쓰는곳마다 달라서.. 우선은 임시테이블로 처리하였습니다.! 모두 감사합니다.!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입