sql with alias 的几种用法

Several usage of sql with alias

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

示例:

WITH name1 AS (
     SELECT ...
)

SELECT * from name1
SELECT * from name1 ORDER BY name 

可能吗? 我遇到 "Invalid object name " 错误

常用Table表达式语法如下:

WITH name1 AS 
(
  SELECT ...
)

SELECT * from name1

CTE table 只能使用一个 SELECT 语句。如果您想使用 CTE table 不止一次,只需将 CTE table 移动到临时 table 并在所有地方使用 table。

您尝试使用的是 CTE,它只能在紧随其后的 DML

中使用
WITH name1 AS (
     SELECT ...
)

SELECT * from name1

那部分可以正常工作。下一个 select 语句将无法访问 CTE。您可以尝试使用 table variable 而不是