ORACLE CASE WHEN 及 SELECT CASE WHEN的使用方法

來源:互聯網
上載者:User

標籤:使用   io   art   re   c   cti   div   ar   

 CASE 語句

CASE selector
   WHEN value1 THEN action1;
   WHEN value2 THEN action2;
   WHEN value3 THEN action3;
   …..
   ELSE actionN;
END CASE;

CASE運算式

DECLARE
   temp VARCHAR2(10);
   v_num number;
BEGIN
   v_num := &i;
   temp := CASE v_num
     WHEN 0 THEN ‘Zero‘
      WHEN 1 THEN ‘One‘
     WHEN 2 THEN ‘Two‘
   ELSE
       NULL
   END;
   dbms_output.put_line(‘v_num = ‘||temp);
END;
/

CASE搜尋語句

CASE
   WHEN (boolean_condition1) THEN action1;
   WHEN (boolean_condition2) THEN action2;
   WHEN (boolean_condition3) THEN action3;
   ……
   ELSE    actionN;
END CASE;

CASE搜尋運算式 

DECLARE
   a number := 20;
   b number := -40;
   tmp varchar2(50);
BEGIN
   tmp := CASE
              WHEN (a>b) THEN ‘A is greater than B‘
              WHEN (a<b) THEN ‘A is less than B‘
              ELSE
              ‘A is equal to B‘
              END;
   dbms_output.put_line(tmp);
END;
/

SELECT CASE WHEN 的使用方法

select 與 case結合使用最大的優點有兩點,一是在顯示查詢結果時能夠靈活的組織格式,二是有效避免了多次對同一個表或幾個表的訪問。以下舉個簡單的範例來說明。比如表 students(id, name ,birthday, sex, grade),要求按每一個年級統計男生和女生的數量各是多少,統計結果的表頭為,年級,男生數量,女生數量。假設不用select case when,為了將男女數量並列顯示,統計起來非常麻煩,先確定年級資訊,再依據年級取男生數和女生數,並且非常easy出錯。用select case when寫法例如以下:
SELECT   grade, COUNT (CASE WHEN sex = 1 THEN 1      /*sex 1為男生,2位女生*/
                                            ELSE NULL
                                            END) 男生數,
                            COUNT (CASE WHEN sex = 2 THEN 1
                                            ELSE NULL
                                            END) 女生數
    FROM students GROUP BY grade;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.