在 SQL Server 中,提供的 WITH PurchaseCount AS (…)语法定义的是一个 公用表表达式(CTE),它与表变量在作用范围、生命周期、性能特性和适用场景上有显著区别。以下是两者的核心对比:
⚙️ 1. CTE(公用表表达式)的特点
-
定义方式:
使用 WITH子句定义,仅作为临时命名结果集,不物理存储数据。
示例:
WITH PurchaseCount AS (
SELECT HYID, SUM(N) AS TransactionCount
FROM V_HYXSR
WHERE CRMJZRQ BETWEEN @StartDate AND @EndDate
GROUP BY HYID
)
SELECT * FROM PurchaseCount; -
作用域与生命周期:
-
仅在 当前查询语句内有效(即紧随其后的 SELECT/INSERT/UPDATE/DELETE语句)。
-
查询结束后自动销毁,无法跨批处理或会话复用。
-
-
性能特性:
-
-
评论前必须登录!
注册