相关疑难解决方法(0)

在WHERE子句中使用别名

我有一个查询,它旨在向我显示表A中的任何行,这些行最近还没有更新.(每行应在"month_no"之后的2个月内更新.):

SELECT A.identifier
     , A.name
     , TO_NUMBER(DECODE( A.month_no
             , 1, 200803 
             , 2, 200804 
             , 3, 200805 
             , 4, 200806 
             , 5, 200807 
             , 6, 200808 
             , 7, 200809 
             , 8, 200810 
             , 9, 200811 
             , 10, 200812 
             , 11, 200701 
             , 12, 200702
             , NULL)) as MONTH_NO
     , TO_NUMBER(TO_CHAR(B.last_update_date, 'YYYYMM')) as UPD_DATE
  FROM table_a A
     , table_b B
 WHERE A.identifier = B.identifier
   AND MONTH_NO > UPD_DATE
Run Code Online (Sandbox Code Playgroud)

WHERE子句中的最后一行导致"ORA-00904无效标识符"错误.不用说,我不想在WHERE子句中重复整个DECODE函数.有什么想法吗?(接受修复和变通方法......)

sql oracle alias decode ora-00904

64
推荐指数
3
解决办法
11万
查看次数

标签 统计

alias ×1

decode ×1

ora-00904 ×1

oracle ×1

sql ×1