似乎仅在 Sybase SQL Anywhere 中支持WITH: http://dcx.sybase.com/1100/en/dbusage_en11/commontblexpr-s-5414852.html
...但不在Sybase ASE中 :(
有人可以建议Sybase ASE中是否有等效的构造?还有其他方法来实现东西而不是使用WITH,但是我们计划重新调整一些动态生成的SQL,以便在Sybase中运行,并且非常需要支持WITH或接近该语法的东西。
答案 0 :(得分:1)
ASE不支持公用表表达式(例如,WITH子句)。
(显而易见的)解决方法是#temp表,视图,物化视图(也称为预先计算的结果集),表变量(ASE 16.0 SP02 +),以及在有限情况下可能派生的表和/或(相关的)子查询。
注意:我不使用SQL Anywhere,所以不确定这在技术上是否可行但是fwiw ......
我认为可能有一种方法可以从SQL Anywhere到ASE设置代理表,其目的是在SQL Anywhere中运行CTE / WITH查询。
当然,即使技术上可行,您也在考虑维护SQL Anywhere数据库的额外开销,并且此类服务器间查询的性能可能是不可接受的(例如,将所有数据从ASE拉入SQL Anywhere到实际上,实现了CTE)。