首頁 >資料庫 >SQL >sql中case when用法

sql中case when用法

DDD
DDD原創
2023-07-17 15:37:366763瀏覽

sql中case when用於在SQL查詢中根據不同的條件執行不同的操作。可以根據任意條件進行判斷,並根據條件的結果執行相應的操作,CASE WHEN語句的工作原理是從上到下逐個判斷條件,一旦有條件滿足則執行相應的操作,並且只會執行第一個滿足條件的操作。

sql中case when用法

SQL中的CASE WHEN語句是一種條件式,用於在SQL查詢中根據不同的條件執行不同的操作。它可以根據任意條件進行判斷,並根據條件的結果執行相應的操作。在SQL中,CASE WHEN語句的語法如下:

CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END

在此語法中,condition1和condition2是條件式,可以是任何與SQL相容的條件。 result1和result2是執行結果,可以是列名、常數值或表達式。最後的ELSE result是可選的,用於處理其他沒有滿足條件的情況。

CASE WHEN語句的工作原理是從上到下逐個判斷條件,一旦有條件滿足則執行對應的操作,並且只會執行第一個滿足條件的操作。如果沒有條件滿足,則會執行ELSE區塊中的操作。

下面是一些CASE WHEN語句的範例:

1. 簡單的CASE WHEN語句:

SELECT
customer_name,
CASE
WHEN gender = 'Male' THEN 'Mr.'
WHEN gender = 'Female' THEN 'Ms.'
ELSE 'Unknown'
END AS salutation
FROM
customers;

上述查詢將根據性別欄位產生不同的稱謂,如果性別是Male,則稱謂為'Mr.',如果性別是Female,則稱謂為'Ms.',其他情況下則稱謂為'Unknown'。

2. CASE WHEN語句與聚合函數的組合:

SELECT
department_id,
COUNT(*) AS employees_count,
CASE
WHEN COUNT(*) > 10 THEN 'Large'
WHEN COUNT(*) > 5 THEN 'Medium'
ELSE 'Small'
END AS department_size
FROM
employees
GROUP BY
department_id;

上述查詢將根據每個部門中的員工數量,將部門分為大型、中型和小型三個不同的類別。

3. CASE WHEN語句在WHERE子句中的應用:

SELECT
order_id,
order_date,
CASE
WHEN order_status = 'Shipped' THEN 1
ELSE 0
END AS shipped_flag
FROM
orders
WHERE
CASE
WHEN order_status = 'Shipped' THEN 1
ELSE 0
END = 1;

上述查詢將只傳回已經出貨的訂單,篩選條件使用了CASE WHEN語句。

總結

CASE WHEN語句是SQL中非常有用的條件式,可以根據不同的條件執行不同的運算。它提供了一種靈活的方式來處理不同的場景,讓查詢更加簡潔和直觀。無論是產生新的欄位、計算統計結果或篩選數據,CASE WHEN語句都能滿足需求,並協助最佳化SQL查詢。

以上是sql中case when用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn