2012-10-01 1 views
0

이 쿼리는 작동하지 않습니다CTE는 UNION 후 ALL

WITH a AS 
(SELECT 1 AS c1) 
SELECT 
    * 
FROM 
    a 


UNION ALL 

WITH b AS 
(SELECT 1 AS c1) 
SELECT 
    * 
FROM 
    b 

당신, 제발 도와 주 시겠어요?

실제 쿼리는 테이블을 사용하지만 예제에서는 필수적인 것은 아닙니다.

많은 감사

답변

5
;WITH a AS 
(SELECT 1 AS c1), 
b AS 
(SELECT 1 AS c1) 
SELECT 
    * 
FROM 
    a 
UNION ALL 
SELECT 
    * 
FROM 
    b 
1

간단한 대답 : 당신은 쿼리를 ;-) 파괴하고

설명해 드리죠 :

  • UNION에서 핵심 단어 2 "쿼리"를 만든다 소요 그들로 하나.
  • (가) 키워드와 함께 쿼리 내에서 사용 할 수없는 상태가 여러 CTE를
을 정의하는 데 사용할 수와 함께 하나 개의 쿼리
  • 에만 유효합니다

    이 모든 결과는 당신이 원하는 것입니다 UNION 쿼리 전에 두 CTE (a & b)를 정의합니다. WITH를 UNION 쿼리에 넣으면 UNION이 중단됩니다 (WITH는 항상 쿼리의 전 (앞에)이므로

    ).