我想在SQL server上使用with子句的多个时间别名。
示例:
WITH name1 AS (
SELECT ...
)
SELECT * from name1
SELECT * from name1 ORDER BY name
有可能吗? 我得到"无效的对象名称"错误
答案 0 :(得分:1)
您尝试使用的是CTE
,只能在紧随其后的DML中使用
WITH name1 AS (
SELECT ...
)
SELECT * from name1
该部分将正常工作。下一个select
语句将无法访问CTE
。您可以尝试使用table variable
代替
答案 1 :(得分:0)
公用表表达式如下语法:
WITH name1 AS
(
SELECT ...
)
SELECT * from name1
您只能为CTE表使用一个SELECT语句。如果您想使用CTE 表不止一次,只需将CTE表移至临时表并在所有位置使用该表。