3
MSSQL 2008에서 여러 CTE를 사용하는 경우 일반적으로 쉼표로 구분합니다.Teradata SQL 구문 - 공통 테이블 식
그러나 Teradata 환경에서 이것을 시도하면 구문에 오류가 발생합니다. MS SQL에서
작품 :
WITH CTE1 AS
(SELECT TOP 2 Name FROM Sales.Store)
,CTE2 AS
(SELECT TOP 2 ProductNumber, Name FROM Production.Product)
,CTE3 AS
(SELECT TOP 2 Name FROM Person.ContactType)
SELECT * FROM CTE1,CTE2,CTE3
자, 테라 데이타 구문에 넣어 시도 : 이름처럼,
WITH RECURSIVE CTE1 (Name) AS
(SELECT TOP 2 Name FROM Sales.Store)
,RECURSIVE CTE2 (ProductNumber, Name) AS
(SELECT TOP 2 ProductNumber, Name FROM Production.Product)
,RECURSIVE CTE3 (Name) AS
(SELECT TOP 2 Name FROM Person.ContactType)
SELECT *
FROM CTE1,CTE2,CTE3
구문 오류 예상 뭔가를 나 유니 코드 사이 식별자를 구분 ' , '및'RECURSIVE '키워드가 포함됩니다. (RECURSIVE 여러 번 사용하지 않고)
두번째 시도 정의를
WITH RECURSIVE CTE1 (Name) AS
(SELECT TOP 2 Name FROM Sales.Store)
,CTE2 (ProductNumber, Name) AS
(SELECT TOP 2 ProductNumber, Name FROM Production.Product)
,CTE3 (Name) AS
(SELECT TOP 2 Name FROM Person.ContactType)
SELECT *
FROM CTE1,CTE2,CTE3
복수는 지원되지 않습니다.
두 번째 시도가 올바른 ANSI SQL 구문이지만 분명히 teradata가이를 지원하지 않습니다 (적어도 "* 지원되지 않음 *"오류 메시지를 해석하는 방법) –