我想在 SQL 服务器上使用 with 子句的多个时间别名。
例子:
WITH name1 AS (
SELECT ...
)
SELECT * from name1
SELECT * from name1 ORDER BY name
可能吗?我收到“无效的对象名称”错误
我想在 SQL 服务器上使用 with 子句的多个时间别名。
例子:
WITH name1 AS (
SELECT ...
)
SELECT * from name1
SELECT * from name1 ORDER BY name
可能吗?我收到“无效的对象名称”错误
您尝试使用的是 a CTE
,它仅可用于紧随其后的 DML
WITH name1 AS (
SELECT ...
)
SELECT * from name1
那部分会正常工作。下select
一条语句将无法访问CTE
. 您可以尝试使用 atable variable
代替
公用表表达式如下语法:
WITH name1 AS
(
SELECT ...
)
SELECT * from name1
您只能对 CTE 表使用一个 SELECT 语句。如果您想多次使用 CTE 表,只需移动到该 CTE 表到临时表并在所有地方使用该表。