SQL的绝对值大于某个值

时间:2017-09-19 18:30:59

标签: sql

以下SQL有效:

select
  column1
from
  table1
where
  column1 > 10

以下没有:

select
  abs(column1 - column2) column_diff
from
  table1
where
  column_diff > 10

为什么呢?我该如何解决?我想说的是,给我所有的行,两列的差值的绝对值大于10'。感谢。

1 个答案:

答案 0 :(得分:1)

您的查询将无效,因为sql引擎将按以下步骤编译您的查询:

  1. from条款
  2. where条款

  3. select条款

  4. 因此,在执行where子句时,别名column_diff将不可用,因此查询将无效。

    解决方案:

    select 
         abs(column1 - column2) as column_diff
             from
               table1
                   where
                     abs(column1-column2) >10;
    

    希望它有所帮助!