【问题标题】:Sybase - Subquery in FROM clauseSybase - FROM 子句中的子查询
【发布时间】:2012-09-04 17:32:03
【问题描述】:

我使用的是 Sybase ASE 12.5.0.3,但无法执行以下子查询:

select * from (select '1' union select '2' ) X

我一直在环顾四周,据我所知,在 Sybase ASE 12 之后应该可以,是我做错了什么,还是这个版本不可能?

编辑 - 即使将查询更改为:

select * from (select '1' as col1 union select '2' as col1 ) X

因此,即使给列赋予别名,它仍然会失败...

【问题讨论】:

    标签: sql sap-ase


    【解决方案1】:

    没有看到错误消息,看来您需要在子查询中提供列别名:

    select * 
    from 
    (
        select '1' as yournewCol 
        union 
        select '2' as yournewCol
    ) X
    

    【讨论】:

      【解决方案2】:

      您需要给列名。试试这个:

      【讨论】:

      • 我无法插入代码示例。只需在“1”之后加上“as col”即可。
      【解决方案3】:

      Sybase ASE 不支持 FROM 子句中的子查询:

      子查询可以嵌套在外部 select、insert、update 或 delete 语句的 where 或 having 子句中、另一个子查询中或选择列表中。或者,您可以编写许多包含子查询作为连接的语句; Adaptive Server 处理连接等语句。

      【讨论】:

      • 我认为上面的引用不太正确。 Sybase 将 OP 语法称为“SQL 派生表”,这基本上是我们认为的 FROM 子句中的子查询 - 早在 12.5.1 就支持。我刚刚在 ASE 15.7 中尝试了 OP 的固定版本,它运行良好(没有列名的版本不起作用)。 infocenter.sybase.com/help/index.jsp?topic=/…
      猜你喜欢
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-18
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多