DECODE
是一個 SQL 函數,它用于根據一組條件檢查表達式的值,并返回與第一個匹配條件關聯的結果
以下是 DECODE
函數在 SQL 中的常見用法:
SELECT product_id, product_name,
DECODE(product_type, 'Electronics', 'E', 'Books', 'B', 'Other') AS product_category
FROM products;
在這個例子中,如果 product_type
是 ‘Electronics’,則 DECODE
函數返回 ‘E’;如果是 ‘Books’,則返回 ‘B’;否則返回 ‘Other’。
2. 處理 NULL 值:使用 DECODE
可以更容易地處理 NULL 值。
SELECT employee_id, first_name, last_name,
DECODE(commission_pct, NULL, 0, commission_pct) AS commission_percentage
FROM employees;
在這個例子中,如果 commission_pct
是 NULL,則 DECODE
函數返回 0;否則返回 commission_pct
的值。
3. 復雜條件判斷:可以使用多個條件來確定返回值。
SELECT order_id, order_date, customer_id, total_amount,
DECODE(SIGN(total_amount - 100), -1, 'Below $100', 0, '$100 or more', 'Above $100') AS amount_category
FROM orders;
在這個例子中,我們使用 SIGN
函數來確定 total_amount
與 100 的關系(小于、等于或大于),然后使用 DECODE
函數將這個關系映射到相應的類別。
請注意,不同的數據庫管理系統可能有不同的語法和功能支持。上述示例適用于 Oracle 數據庫。在其他數據庫中,你可能需要使用其他函數或方法來實現類似的功能,例如使用 CASE
語句。