巧用coalesce,coalesce

來源:互聯網
上載者:User

巧用coalesce,coalesce

    現在有這麼一個需求,小區有幾個連絡人,現在停電,先通知連絡人1,如果沒有則通知連絡人2,否則還沒有則通知連絡人3.

create table test(
   id  number,
   name varchar2(20),
   contact_phone1 varchar2(20),
   contact_phone2 varchar2(20),
   contact_phone3 varchar2(20),
   contact_phone4 varchar2(20)
);
insert into test values(1,'小區1','','','13485958522','');
insert into test values(1,'小區2','','','','13488958536');
commit;


SQL> select * from test;
  ID  NAME    CONTACT_PHONE1 CONTACT_PHONE2  CONTACT_PHONE3 CONTACT_PHONE4
----- ------- -------------- --------------- -------------- --------------
   1  小區1                                   13485958522
   1  小區2                                                  13488958536

   如果沒有這個函數,你可以要先把資料查出來以後,再用java代碼處理。coalesce從左往右數,遇到第一個非null值,則返回該非null值,多層判斷。

SQL> select id,name,coalesce(contact_phone1,
                    contact_phone2,
                    contact_phone3,
                    contact_phone4) as contact_phone
     from test;
        ID NAME                 CONTACT_PHONE
---------- -------------------- --------------------
         1 小區1                13485958522
         1 小區2                13488958536

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.