ORA-00936 缺失表达式
错误原因
情况之一,关键字使用不规范,写多或者少写了就会报错。
报错可能会在别的地方标红,而不在错误的SQL位置报红,所以要细心检查,注意书写格式排版。
笔者编写存储过程时,多写了一个between,简单记录一下,如下
select
sum(case when
((table.salary=0) or (table.age=0)) and (table.birthday between between data_1 and date_2 )then 1 else 0 end
) count
以上,报错红色标记的是 table.salary = 0 ,以为是salary有null,但是并不是。
是因为后面多了between导致sql出错。
知错就改。