如何在左外连接中使用CTE?

Ser*_*kov 7 sql t-sql sql-server-2008

我试图将公用表表达式连接到现有表(table1),如下所示.

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
Run Code Online (Sandbox Code Playgroud)

错误是:

  1. ';'附近的语法不正确.
  2. 关键字"on"附近的语法不正确.

我究竟做错了什么?我应该使用CTE来完成这项任务吗?

Dar*_*Teo 19

CTE必须在查询开始时出现.

with cte as (
    select column1, column2 from table2
)
select column1, column2 from table1
   LEFT JOIN cte
on table1.column1 = cte.column1;
Run Code Online (Sandbox Code Playgroud)