oracle/plsql case條件陳述式的用法

來源:互聯網
上載者:User

語句文法

 代碼如下 複製代碼

CASE  [ expression ]
  WHEN condition_1 THEN result_1
  WHEN condition_2 THEN result_2
  ...
  WHEN condition_n THEN result_n
  ELSE result
END

expression 可選的。它的價值,你比較的條件清單。 (即:condition_1,condition_2,... condition_n)

condition_1到condition_n都必須是相同的資料類型。條件評估中列出的順序。一個條件是一旦發現是真實的,case語句將返回的結果和不評價任何進一步的條件。

result_1到result_n都必須是相同的資料類型。這是返回的值一個條件是,一旦發現是真的。

注意:

如果沒有條件為真,那麼case語句將返回在ELSE子句裡的值。

如果省略了ELSE子句和任何條件發現是真的,那麼case語句將返回NULL。

最多可以有255在case語句比較。時,每個...條款被認為是2比較。


Applies To:

Oracle 9i, Oracle 10g, Oracle 11g


執行個體
你可以使用case語句在SQL語句如下:(包括運算式子句)

 代碼如下 複製代碼

select table_name,
CASE owner
  WHEN 'SYS' THEN 'The owner is SYS'
  WHEN 'SYSTEM' THEN 'The owner is SYSTEM'
  ELSE 'The owner is another value'
END
from all_tables;


或者你可以寫SQL語句,使用這樣的情況下聲明:(省略了運算式子句)

 代碼如下 複製代碼

select table_name,
CASE
  WHEN owner='SYS' THEN 'The owner is SYS'
  WHEN owner='SYSTEM' THEN 'The owner is SYSTEM'
  ELSE 'The owner is another value'
END
from all_tables;

上述兩個案例語句以下的IF - THEN- ELSE語句是等價的:

 代碼如下 複製代碼

IF owner = 'SYS' THEN
     result := 'The owner is SYS';

ELSIF owner = 'SYSTEM' THEN
    result := 'The owner is SYSTEM'';

ELSE
    result := 'The owner is another value';

END IF;

case語句會比較每一位業主的價值,一個接一個。

需要注意的一點是,在case語句的else子句是可選的的。你可以省略。讓我們看看上面的SQL語句與ELSE子句省略。

您的SQL語句如下所示:

 代碼如下 複製代碼

select table_name,
CASE owner
  WHEN 'SYS' THEN 'The owner is SYS'
  WHEN 'SYSTEM' THEN 'The owner is SYSTEM'
END
from all_tables;

執行個體
下面就是一個例子,示範了如何使用case語句來比較不同條件下:

 

 代碼如下 複製代碼
select
CASE
  WHEN a < b THEN 'hello'
  WHEN d < e THEN 'goodbye'
END
from suppliers;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.