【问题标题】:Derby SQL calculation德比 SQL 计算
【发布时间】:2019-04-27 01:55:25
【问题描述】:

我在 Derby 中进行计算时遇到了麻烦。

问题是下一个:

Select column1, (column1 + 10) as newCol, 
(column1+newCol) as newCol2 from sometable;

这会引发一个错误,说明 newCol 不存在,在这种情况下 (column1+newCol)。

为什么不正确?

感谢您的帮助! ????

【问题讨论】:

  • 您不能在定义别名的select 中使用别名。
  • 非常感谢。那么我怎样才能执行我想要的呢?我需要做类似的事情,但不知道怎么做。
  • 我不知道 Derby 是否支持公用表表达式,但如果支持:with cteData as (select column1, column1 + 10 as newCol from sometable) select column1, newCol, column1 + newCol from cteData。或者硬着头皮使用Select column1, (column1 + 10) as newCol, (column1+column1+10) as newCol2 from sometable

标签: sql derby column-alias


【解决方案1】:

您无法在定义它的同一级别访问列别名。

你需要一个派生表:

select column1, newcol, column1 + newcol as newcol2
from (
  Select column1, (column1 + 10) as newCol
  from sometable
) t;

【讨论】:

    猜你喜欢
    • 2014-05-08
    • 1970-01-01
    • 2015-10-12
    • 2023-02-01
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多