【问题标题】:Select AS not working in interbase选择 AS 在 interbase 中不工作
【发布时间】:2011-02-18 13:52:46
【问题描述】:

作品

select payeeid, EXTRACT(WEEKDAY FROM checkdate) as DOW, 
(bankcleared - checkdate) as DateDiff  
from Master  
where (bankcleared is not null)  
order by payeeid, DOW, DateDiff  

DateDiff 添加到Where - 不起作用

select payeeid, EXTRACT(WEEKDAY FROM checkdate) as DOW, 
(bankcleared - checkdate) as DateDiff  
from Master  
where (bankcleared is not null)  AND (DateDiff >= 1)  
order by payeeid, DOW, DateDiff  

【问题讨论】:

  • 对不起,我也想问....为什么将 DateDiff 添加到 where 会导致错误 - DateDiff Column unknown
  • 因为 DATEDIFF 是一个内置函数,它检索两个日期时间戳之间的日期部分差异。

标签: sql delphi interbase


【解决方案1】:

您只能在 GROUP BY、ORDER BY 或 HAVING 子句中使用列别名。

标准 SQL 不允许您在 WHERE 子句中引用列别名。施加此限制是因为在执行 WHERE 代码时,可能尚未确定列值。

试试这个

select payeeid, EXTRACT(WEEKDAY FROM checkdate) as DOW, 
(bankcleared - checkdate) as DateDiff
from Master
where (bankcleared is not null) AND ((bankcleared - checkdate)>= 1)
order by payeeid, DOW, DateDiff 

有关更多信息,请访问这些链接

Can you use an alias in the WHERE clause in mysql?

Unknown Column In Where Clause

【讨论】:

    【解决方案2】:
    select payeeid, 
           EXTRACT(WEEKDAY FROM checkdate) as DOW, 
           (bankcleared - checkdate) as DateDiff
    from Master
    WHERE (bankcleared is not null) 
    AND   ((bankcleared - checkdate)>= 1)
    Order by  payeeid, DOW, DateDiff 
    

    【讨论】:

      猜你喜欢
      • 2011-10-04
      • 2013-08-10
      • 1970-01-01
      • 2013-05-22
      • 2018-11-12
      • 2019-08-19
      • 2019-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多