2011-10-10 53 views
4

我正在嘗試將一個公用表表達式加入到現有表(table1)中,如下所示。如何在左外連接中使用CTE?

select column1, column2 from table1 

left outer join 

    ;with cte as (
    select column1, column2 from table2) 

    select column1, column2 from cte 

on table1.column1 = cte.column1 

的錯誤是:

  1. 附近有語法錯誤 ';'。
  2. 關鍵字'on'附近語法不正確。

我在做什麼錯?我應該使用CTE來完成這項任務嗎?

回答

14

CTE必須在查詢的開頭。

with cte as (
    select column1, column2 from table2 
) 
select column1, column2 from table1 
    LEFT JOIN cte 
on table1.column1 = cte.column1; 
+0

很好的答案,但我相信你的括號對不正確 – whiteshooz