我有一些预定义的值,比如
declare
v_type varchar2(20);
begin
select type into v_type from GenericTypes where id =5 ;
// say v_type = 'XYZ'
end;
现在,我必须检查v_type是否等于' ABC'或者' DEF'或者' ASD'还有5件物品。
所以我用过:
if v_type = 'ABC' or v_type ='DEF' or v_type='ASD'
和另外5个条件
如果有更有效的方法来执行此操作,例如使用select exists等。
答案 0 :(得分:3)
您应该能够使用IN子句,例如:
if v_type IN ('ABC','DEF','ASD') then
do things;
end if;
答案 1 :(得分:1)
您可以使用 CASE 表达式并检查查询本身的条件。
例如,
DECLARE
v_type NUMBER;
BEGIN
SELECT
CASE
WHEN TYPE IN ('ABC','DEF','ASD')
THEN 1
ELSE 0
END GenericTypes
INTO v_type
WHERE ID =5;
IF v_type = 1 THEN
-- do somethins
END IF;
END;
/