Oracle Apex -带案例的SQL

x6yk4ghg  于 2023-03-07  发布在  Oracle
关注(0)|答案(1)|浏览(241)

我有一个非常简单的查询使用组复选框:

P1_CHECKBOX_1
P1_CHECKBOX_2

以及一个非常简单的查询,用于根据这两个项目刷新交互式报表,如下所示:

select
name,
last_name
from Emp_table
where 
(case
    when instr(:P1_CHECKBOX_2, name)>0 
    then instr(:P1_CHECKBOX_2, name)>0
    else instr(:P1_CHECKBOX_1, last_name)>0
end) = 1

我们的想法是使用复选框过滤IG。这两个项目都有一个独立的动态操作来刷新报告(报告区域中受影响的元素)。我在这里遗漏了什么吗?我得到了这个错误:ORA-20999:无法解析SQL查询! ORA-06550:第161行,第8栏:ORA-00905:缺少关键字
谢谢

0g0grzrc

0g0grzrc1#

THENELSE子句应返回值,但不包含比较:

select name,
       last_name
from   Emp_table
where  case
       when instr(:P1_CHECKBOX_2, name)>0 
       then instr(:P1_CHECKBOX_2, name)
       else instr(:P1_CHECKBOX_1, last_name)
       end > 0

或者更简单地说,没有CASE表达式:

select name,
       last_name
from   Emp_table
where  instr(:P1_CHECKBOX_2, name)>0 
or     instr(:P1_CHECKBOX_1, last_name) > 0

相关问题