Biguqery에서는 Merge 구문 안에 With절을 사용해도 정상적으로 작동한다.
Bigquery ver
MERGE INTO `` AS target
USING
(
WITH signup_log AS
(쿼리를 입력하세요)
SELECT a,
FROM signup_log
) AS source ON target.date = source.date
WHEN MATCHED THEN UPDATE SET target.dau = source.dau,
WHEN NOT MATCHED THEN INSERT (date) VALUES (source.date);
그러나, MSSQL에서 이렇게 사용해버리면 With절이 옳지 않다는 오류가 발생하는데, 순서를 바꿔주면 가볍게 해결가능하다
MSSQL에서 이렇게 사용하세요
Merge 구문을 사용하기 전에 With절로 사용할 임시 테이블들을 다 만들어주면, MERGE의 USING 파트에서 정상적으로 불러올 수 있다.
--With 절들을 MERGE 구문 전에 모두 선언해주기
WITH signup_log AS
(쿼리를 입력하세요)
MERGE INTO `` AS target
USING
(
SELECT a,
FROM signup_log
) AS source ON target.date = source.date
WHEN MATCHED THEN UPDATE SET target.dau = source.dau,
WHEN NOT MATCHED THEN INSERT (date) VALUES (source.date);
'데이터베이스 > SQL' 카테고리의 다른 글
[SQL 뉴비 가이드북] 0.컨텐츠 아카이브 (0) | 2024.10.02 |
---|---|
[Bigquery] 빅쿼리 SELECT * REPLACE (0) | 2024.06.26 |
[MSSQL] 해당 날짜 월의 1일에 해당하는 날짜 추출하기 / 월 추출 (0) | 2024.06.12 |
[MSSQL] 해당 날짜 주차의 월요일에 해당하는 날짜 추출하기 (0) | 2024.06.12 |
[MSSQL] SQL Server에서 SAFE_DIVIDE 사용하기 (0) | 2024.06.10 |
댓글