/*简单式case*/
<<case_when_then>>
DECLARE
v_id NUMBER := &v_id;
v_name VARCHAR2 (20);
BEGIN
CASE v_id
WHEN 1 THEN v_name := 'aa';
WHEN 2 THEN v_name := 'bb';
ELSE
v_name := 'cc';
END CASE;
DBMS_OUTPUT.PUT_LINE(v_name);
END case_when_then;
/* 搜素式case */
<<case_when_then>>
DECLARE
v_id NUMBER := &v_id;
v_name test01.name%TYPE;
BEGIN
CASE
WHEN v_id > id_test01.CURRVAL THEN v_name := 'aa';
WHEN v_id < id_test01.CURRVAL THEN v_name := 'bb';
ELSE
v_name := 'cc';
END CASE;
DBMS_OUTPUT.PUT_LINE (v_name);
END case_when_then;
--nullif 函数会比较两个表达式。如果两者相同,函数会返回null;否则的话,返回第一个表达式的值。
--val 函数与nullif相反,如果两个值相同,返回第一个表达式,如果不相同,返回空。
nullif(expression1,experssion2);
--coalesce函数会把表达式列表中每个表达式与null比较,并返回第一个非null表达式的值。
coalesce(expression1,expression2,...expressionN);
本公众号是个人学习工作笔记,希望大家发现问题能及时和我本人沟通,希望你与我共同成长。个人微信zgjt12306。

欢迎关注“自学Oracle”




