这个问题之前已经被问过 -
唯一建议的答案是“只需在顶部定义您的 CTE 并在子查询中访问它即可?”
这样可以解决问题,但我真的希望能够在以下情况下使用 CTE -
作为 SELECT 中的子查询
作为 SELECT 的 FROM 子句中的派生表
这两种方法在 PostgreSQL 中都有效。但在 Sql Server 2005 中,我得到了“关键字 'with' 附近的语法不正确”。
我想要这个功能的原因是,我的大多数查询都是动态构建的,我希望能够定义一个 CTE,将其保存在某个地方,然后按需要将其放入更复杂的查询中。
如果 Sql Server 简单地不支持此用法,我将不得不接受它,但我没有读到任何说明它是不允许的。
是否有人知道如何使其工作?