sql与别名的几种用法

时间:2017-04-26 08:58:12

标签: sql sql-server with-statement with-clause

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

示例:

WITH name1 AS (
     SELECT ...
)

SELECT * from name1
SELECT * from name1 ORDER BY name 

有可能吗? 我得到"无效的对象名称"错误

2 个答案:

答案 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表移至临时表并在所有位置使用该表。