相当于 Sybase ASE 中的 WITH 子句

Equivalent to WITH clause in Sybase ASE

看来只有 Sybase SQL Anywhere 才支持 WITH: http://dcx.sybase.com/1100/en/dbusage_en11/commontblexpr-s-5414852.html

...但是 不在 Sybase ASE 中 :(

有人可以建议 Sybase ASE 中是否有等效的构造?除了使用 WITH 之外,还有其他实现方法,但我们计划将一些动态生成的 SQL 重新用于 Sybase 中的 运行 并且对 WITH 或类似语法的支持非常多想要。

ASE 不支持常见的 table 表达式(例如,WITH 子句)。

(明显的)解决方法是#temp tables、视图、物化视图(又名预先计算的结果集)、table 变量(ASE 16.0 SP02+),并且在有限的情况下可能派生tables and/or(相关)子查询。


注意:我不在任何地方使用 SQL 所以不确定这在技术上是否可行但是 fwiw ...

我想可能有一种方法可以设置代理 table 从 SQL 任何地方到 ASE,想法是 运行 你的 CTE/WITH 查询来自SQL 内任何地方。

'当然,即使这在技术上是可行的,您正在考虑维护 SQL Anywhere 数据库的额外开销,并且此类服务器间查询的性能可能无法接受table(例如,将所有数据从 ASE 拉到 SQL 任何地方,实际上实现了 CTE)。