【发布时间】:2021-06-23 11:59:42
【问题描述】:
我有一个使用 IF 条件的 select 语句,如下所示
If (v_block = 'apple')
then
select count(*) into v_apple_id
from table_fruits
where fruit_id = v_fruit_id;
elsif (v_block = 'mango')
then
select count(*) into v_mango_id
from table_fruits
where fruit_id = v_fruit_id;
end if;
如何通过避免使用 IF 语句来优化此查询。
v_fruit_id 将取决于 v_block 中的值。例如。如果 v_block = 'Mango' 则 v_fruit_id 将为 1234,如果 v_block = 'apple' 则 v_fruit_id 将为 1244。此处的数字(如 1234 或 1244)并不总是相同,因此应给出变量 v_fruit_id 而不是硬编码数字
我不想在这里使用 IF Else 语句,因为 v_block 有更多值,所以为了避免使用 IF else 进行大查询,我想为它找到一个替代的简单选择语句。
我还需要 into 变量来根据结果。如果是 v_block = mango,那么它应该是 v_mango_id,如果是苹果,那么它应该是 v_apple_id
【问题讨论】:
标签: sql oracle if-statement plsql select-into