暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle case控制条件

自学Oracle 2019-02-26
603

/*简单式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”


文章转载自自学Oracle,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论