【问题标题】:Is there a Sybase equivalent to the SQL Server / Oracle WITH keyword?是否有与 SQL Server/Oracle WITH 关键字等效的 Sybase?
【发布时间】:2012-04-18 20:34:14
【问题描述】:

在 Oracle / SQL Server 中,我可以使用 WITH 关键字来定义用于视图的临时表:

WITH a AS (SELECT something_horrible FROM somewhere_horrible)
SELECT * FROM a

当'table' a 可以在查询中多次使用时非常方便。我认为当 a 的 SELECT 复杂时会有性能提升(我认为它通常只执行一次)。

在 Sybase 中是否有等价物?

(注意我知道有临时表,但我正在尝试编写 VIEW,因此没有创建/使用临时表的语法)

提前致谢

瑞恩

【问题讨论】:

    标签: sql sybase


    【解决方案1】:

    AFAIK Sybase 支持 CTE。所以你可以同时使用 WITH 和 WITH RECURSIVE 关键字

    【讨论】:

    【解决方案2】:

    这个技巧怎么样:

    SELECT h.* FROM
        (SELECT something_horrible FROM somewhere_horrible) h
    

    【讨论】:

    • 子选择与临时表不同,因为它不能被重用。
    • 这就是我最终要做的——很多!然而,正如@phlogratos 指出的那样,可怕的选择可能会被多次执行——取决于我猜的执行计划。如果某些 _horrible 是 30 行 SQL,重复使用,它很快就会变得非常混乱......
    猜你喜欢
    • 1970-01-01
    • 2011-01-16
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    相关资源
    最近更新 更多