2

このクエリは機能しません:

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


UNION ALL

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

助けていただけますか?

実際のクエリではテーブルを使用しますが、この例では必須ではありません。

どうもありがとう

4

2 に答える 2

7
;WITH a AS 
(SELECT 1 AS c1), 
b AS 
(SELECT 1 AS c1)
SELECT
    *
FROM
    a 
UNION ALL
SELECT
    *
FROM
    b
于 2012-10-01T16:30:41.720 に答える
2

簡単な答え: クエリを壊しています ;-)

説明させてください:

  • UNION キーワードは、2 つの「クエリ」を取り、それらを 1 つにします。
  • WITH キーワードはクエリ内では使用できず、1 つのクエリに対してのみ有効です
  • WITH を使用して複数の CTE を定義できます

これらすべての結果として、UNION クエリの前に両方の CTE (a と b) を定義する必要があります。WITH を UNION クエリ内に配置すると、UNION が壊れます (WITH は常にクエリの外 (前) であるためです。

于 2012-10-02T11:19:09.990 に答える