在SQL中,CASE WHEN
語句允許你根據一個或多個條件執行不同的操作。這對于數據的動態轉換非常有用。以下是如何使用CASE WHEN
來實現數據轉換的一些基本步驟和示例:
CASE WHEN
語句。每個CASE WHEN
語句都會檢查一個條件,并在條件為真時返回一個值。CASE WHEN
語句或者多個IF...ELSE
語句。CASE WHEN
語句應用到你的查詢中,以便對數據進行轉換。假設我們有一個名為orders
的表,其中包含訂單信息,包括訂單ID、客戶ID、訂單金額和訂單日期。我們想要將訂單金額轉換為美元和本地貨幣的形式,具體取決于客戶所在的地區。
-- 假設我們有一個名為'currency_rates'的表,其中包含匯率信息
-- currency_rates表有'currency_id'(貨幣ID)、'usd_to_local_rate'(美元到本地貨幣的匯率)等列
SELECT
o.order_id,
o.customer_id,
CASE
WHEN cr.currency_id = 'USD' THEN o.order_amount * cr.usd_to_local_rate
ELSE o.order_amount
END AS order_amount_in_usd,
CASE
WHEN cr.currency_id = 'USD' THEN o.order_amount
ELSE o.order_amount / cr.usd_to_local_rate
END AS order_amount_in_local_currency
FROM
orders o
JOIN
currency_rates cr ON o.currency_id = cr.currency_id;
在這個示例中,我們使用了兩個CASE WHEN
語句來根據currency_id
列的值轉換訂單金額。如果currency_id
是’USD’,則金額保持不變;否則,金額會根據匯率轉換為本地貨幣。
注意:這個示例假設你已經有一個包含匯率信息的currency_rates
表,并且orders
表中有一個currency_id
列來標識訂單使用的貨幣。你可能需要根據你的實際數據庫結構進行調整。