0

说,我有以下内容:

WITH    T1 as (select xxx as MYALIAS FROM T)
        T2 as (select yyy from T1)

SELECT  T2.ID,
        MAX(MYALIAS) AS MAX_ALIAS,      
        T.AN_ALIAS

FROM   T2

WHERE  MAX_ALIAS <> T.AN_ALIAS 
GROUP  BY T2.ID, T.AN_ALIAS

让我们将结果想象为一个名为 的表MY_RESULT_TABLE

我需要将 MY_RESULT_TABLE 加入其他一些列。
我需要获得 TEMP_TABLE = MY_RESULT_TABLE + SOME JOINS.

问题是如何使用这个 MY_RESULT_TABLE?

我试图做 WITH MY_RESULT_TABLE AS (the code above)......没有工作......

编辑
我的另一个问题是我需要从 MY_RESULT_TABLE 的选择中插入一些值到 MY_TABLE...

INSERT INTO MY_TABLE_TO_INSERT ...
SELECT a b c FROM MY_RESULT_TABLE
4

1 回答 1

5

它应该像您详细说明的那样工作,只需记住用逗号分隔每个 CTE。

编辑您也可以将 CTE 用于 INSERT 和 UPDATE。已更新插入。

;
WITH T1 AS 
(
    SELECT xxx 
    AS MYALIAS FROM T
),
T2 AS 
(
    SELECT yyy 
    FROM T1
),
MY_RESULT_TABLE AS 
(
    SELECT  T2.ID,
            MAX(MYALIAS) AS MAX_ALIAS,      
            T.AN_ALIAS
    FROM   T2
    WHERE  MAX_ALIAS <> T.AN_ALIAS 
    GROUP  BY T2.ID, T.AN_ALIAS

)
INSERT INTO MY_TABLE_TO_INSERT(col1, col2, col3, ...)
    SELECT ID, MAX_ALIAS, xyz.OtherColumnsHere
        FROM MY_RESULT_TABLE
        INNER JOIN xyz on ...
于 2012-11-23T18:46:28.510 回答