-1

クエリで複数の CTE を使用したいのですが、うまくいきません。以下は、私がやりたいことの例です。

WITH tbl1 AS
    (SELECT *
    FROM tblStuff)

WITH tbl2 AS
    (SELECT tbl1.fldStuff1 ...
     FROM tbl1, tblStuff2)

    SELECT *
    FROM tbl2
4

2 に答える 2

14

一度だけ指定する必要がありますWITH。次に、追加の CTE をコンマで区切ってリストできます。例えば:

WITH cte1 AS 
(
  ...
),
cte2 AS 
(
  ...
)
SELECT ...;
于 2013-07-19T14:34:25.643 に答える
8
WITH tbl1 AS
    (SELECT *
    FROM tblStuff),

tbl2 AS
    (SELECT tbl1.fldStuff1, tbl1.fldStuff2, tblStuff2.fldStuff1, tblStuff2.fldStuff2
     FROM tbl1, tblStuff2)

    SELECT *
    FROM tbl2

複数の CTE を使用する場合、追加の WITH は必要ありません。コンマで区切ります。

于 2013-07-19T14:34:55.530 に答える