임시테이블에 저장한 데이터를 특정 테이블에 INSERT를 하려고 합니다.
임시테이블을 #tmp 라고 하고 특정 테이블을 target 이라고 할때
INSERT INTO target
(
a,
b,
k
)
SELECT
@a,
target.b,
target.c
FROM
#tmp, target
WHERE
#tmp.k = target.k
이런 형태의 쿼리를 사용중인데.. 문제는 target 테이블의 a 컬럼에 들어가는 값은
아래와 같이 전혀 다른 other_table 이라는 곳에서 특정 컬럼의 max 값으로 가져와야 하는 것인데요.
SELECT isnull(max(other_table.a), 0) + 1
FROM other_table
실제 상황은 더 길고 복잡하지만 요약하면 이렇습니다.
루프나 커서를 사용하지 않고 간략하게 쿼리를 만들순 없을까요?
SELECT 문의 @a 를 (select isnull(max(a), 0) + 1 from other_table) 의 형태로 쓰면 안되나요?