0

我想在 SQL 服务器上使用 with 子句的多个时间别名。

例子:

WITH name1 AS (
     SELECT ...
)

SELECT * from name1
SELECT * from name1 ORDER BY name 

可能吗?我收到“无效的对象名称”错误

4

2 回答 2

1

您尝试使用的是 a CTE,它仅可用于紧随其后的 DML

WITH name1 AS (
     SELECT ...
)

SELECT * from name1

那部分会正常工作。下select一条语句将无法访问CTE. 您可以尝试使用 atable variable代替

于 2017-04-26T09:06:29.680 回答
0

公用表表达式如下语法:

WITH name1 AS 
(
  SELECT ...
)

SELECT * from name1

您只能对 CTE 表使用一个 SELECT 语句。如果您想多次使用 CTE 表,只需移动到该 CTE 表到临时表并在所有地方使用该表。

于 2017-04-26T09:06:27.860 回答