복붙노트

[SQL] 공통 테이블 표현식, 왜 세미콜론?

SQL

공통 테이블 표현식, 왜 세미콜론?

일반적으로 SQL 서버 공통 테이블 표현식 절에이 같은 문 앞에이 세미콜론 :

;WITH OrderedOrders AS --semicolon here
(
    SELECT SalesOrderID, OrderDate,
    ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber'
    FROM Sales.SalesOrderHeader 
) 
SELECT * 
FROM OrderedOrders 
WHERE RowNumber BETWEEN 50 AND 60

왜?

해결법

  1. ==============================

    1.종합하면, 이전 문은 WITH / CTE 전에 종료해야합니다. 대부분의 민속 사용 오류를 방지하려면하며 CTE 전에 무엇을 우리가 알고하지 않기 때문에 함께

    종합하면, 이전 문은 WITH / CTE 전에 종료해야합니다. 대부분의 민속 사용 오류를 방지하려면하며 CTE 전에 무엇을 우리가 알고하지 않기 때문에 함께

    그래서

    DECLARE @foo int;
    
    WITH OrderedOrders AS
    (
        SELECT SalesOrderID, OrderDate,
    ...;
    

    와 같다

    DECLARE @foo int
    
    ;WITH OrderedOrders AS
    (
        SELECT SalesOrderID, OrderDate,
    ...;
    

    병합 명령은 유사한 요구 사항이 있습니다.

  2. from https://stackoverflow.com/questions/6938060/common-table-expression-why-semicolon by cc-by-sa and MIT license