只是想知道是否有更好的方法在ORACLE中编写以下PL / SQL代码?
IF(p_c_courtesies_cd is not null
OR p_c_language_cd is not null
OR v_c_name is not null
OR v_c_firstname is not null
OR v_c_function is not null
OR p_c_phone is not null
OR p_c_mobile is not null
OR p_c_fax is not null
OR v_c_email is not null
) THEN
-- Do something
END IF;
答案 0 :(得分:9)
答案 1 :(得分:2)
我的回答是简单的“否”。
虽然有几种不同的方式来编写相同的构造,但我认为没有必要“更好”。
任何人都可以查看IF语句并确切知道它的含义。基于连接或使用合并运算符的替代方案只是模糊了意图。
答案 2 :(得分:1)
如果coalesce(expr1,expr2,... exprn)不为null,那么......
答案 3 :(得分:0)
另一种方式,利用Oracle将NULL和''视为相同的事实:
IF p_c_courtesies_cd
|| p_c_language_cd
|| v_c_name
|| v_c_firstname
|| v_c_function
|| p_c_phone
|| p_c_mobile p_c_fax
|| v_c_email is not null
THEN
-- Do something
END IF;