我在oracle的apex环境中工作,尝试在一种情况下返回所有值,在另一种情况下返回特定值。如果您不熟悉apex,它会使用低级代码生成数据驱动的前端页面;本例使用下拉列表从列表中进行选择,我将该列表选择与从数据库中提取的值进行比较。
这将创建下拉列表(需要2列—显示列[name]和返回列[id]):
select distinct 'All users' as name,
'99999' as id
from real_table
union
select distinct name,
id
from real_table
该输入存储在一个变量中,我们称之为:list\u input。当选择“所有用户”时,我想从另一个\u表中选择所有值,当选择特定用户的名称/id时,只选择与该用户关联的值。下面是代码,我必须尝试和实现,但没有骰子。
select name,
id,
other_col1,
other_col2
from another_table
where case
when :LIST_INPUT like '99999' then '%'
else :LIST_INPUT
end like id
当选择了一个真实的用户id时,它可以正常工作,但是当选择了“all users”值时,它不返回任何内容。我在这里的逻辑是,我要求它将通配符与id字段进行比较,因此它应该返回所有内容,但是它不返回任何内容。
谢谢!
2条答案
按热度按时间qxgroojn1#
可能不需要案例陈述,看:
ljo96ir52#
我认为你的
LIKE
运算符的操作数顺序错误。不是吗?