【发布时间】:2017-09-29 18:29:47
【问题描述】:
我不想创建这样构造的视图: (简体)
Create VIEW viewAll AS
With TempLevel1 AS
(
SELECT statement
)
With TempLevel2 AS (SELECT * from TempLevel1)
SELECT * from TempLevel2
问题是我不能使用这样的 With 语句,因为 以下错误:
关键字“With”附近的语法不正确。 关键字“with”附近的语法不正确。
如果这个语句是 公共表表达式、xmlnamespaces 子句或更改跟踪 上下文子句,前一条语句必须以 分号。
我必须指定 SELECT 查询要复杂得多,而且我必须使用 With 两次。
将第一个 with 语句创建为另一个视图,如 viewTempLevel1(并在 With TempLevel2 语句中使用)会更好吗?
【问题讨论】:
-
有很多语句不能重复使用,例如
SELECT、FROM或WHERE。在这种情况下,它们有时只接受几个参数。 -
@ÁlvaroGonzález 但这里并非如此。 关键字不需要重复指定多个CTE
-
@PanagiotisKanavos 不是吗?我会说它不能。您甚至将其发布为答案,所以我想我被误解了。
标签: sql-server database common-table-expression