首頁 > 資料庫 > mysql教程 > SQL CASE 運算式如何在不同資料庫系統之間運作?

SQL CASE 運算式如何在不同資料庫系統之間運作?

DDD
發布: 2025-01-11 06:45:41
原創
329 人瀏覽過

How Does the SQL CASE Expression Work Across Different Database Systems?

SQL CASE 表達式的完整語法

SQL CASE 運算式旨在處理複雜的查詢,讓您可以評估多個條件,並根據滿足的條件傳回特定值。其語法在不同的資料庫引擎中有所不同。

SQL Server

SQL Server 的 CASE 運算式的一般語法如下:

<code class="language-sql">CASE case-expression
    WHEN when-expression-1 THEN value-1
  [ WHEN when-expression-n THEN value-n ... ]
  [ ELSE else-value ]
END</code>
登入後複製

Oracle

Oracle 的 CASE 表達式語法採用略微不同的方法:

<code class="language-sql">CASE
    WHEN boolean-when-expression-1 THEN value-1
  [ WHEN boolean-when-expression-n THEN value-n ... ]
  [ ELSE else-value ]
END</code>
登入後複製

CASE 表達式的組成部分

  • case-expression: 要根據 when-expressions 評估的值。
  • when-expression: 與 case-expression 比較的表達式。
  • value: 如果對應的 when-expression 與 case-expression 匹配,則為 CASE 語句的結果。
  • boolean-when-expression: 一個布林表達式,決定是否傳回對應的值。
  • else-value: 如果沒有 when-expression 與 case-expression 匹配,則傳回的值。

執行語意

CASE 表達式依序評估每個 when-expression。找到匹配項時,傳回對應的值。如果沒有找到匹配項,則傳回 else-value(如果有)。需要注意的是,when-expressions 的順序很重要,因為第一個符合的表達式優先。

範例

考慮以下查詢:

<code class="language-sql">SELECT CASE student_age
    WHEN 18 THEN 'Teenager'
    WHEN 21 THEN 'Adult'
    ELSE 'Minor'
END AS age_category
FROM students;</code>
登入後複製

此查詢根據學生的年齡分配相應的年齡類別,18 歲為“Teenager”,21 歲為“Adult”,低於 18 歲或未找到匹配項則為“Minor”。

以上是SQL CASE 運算式如何在不同資料庫系統之間運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板