decode 函數(shù)用于根據(jù)條件表達式評估不同的值,類似于 if-else 語法,它的用法包括:替換 null 值、轉(zhuǎn)換數(shù)據(jù)類型和根據(jù)條件返回不同值。
SQL 中 DECODE 函數(shù)的用法
DECODE 函數(shù)概述
DECODE 函數(shù)是一個 SQL 函數(shù),用于根據(jù)條件表達式評估不同的值。它類似于 IF-ELSE 結(jié)構(gòu),但允許使用更簡潔的語法。
語法
<code class="sql">DECODE(expression, value1, result1, value2, result2, ..., default_result)</code>
登錄后復(fù)制
參數(shù)
expression:要評估的表達式。
value1, value2, …:要檢查的條件值。
result1, result2, …:與對應(yīng)條件值匹配時返回的結(jié)果值。
default_result:如果表達式不匹配任何條件值,則返回的默認結(jié)果值。
用法
DECODE 函數(shù)有以下用法:
替換 NULL 值:可以用 DECODE 函數(shù)替換 NULL 值為指定值,例如:
<code class="sql">SELECT DECODE(name, NULL, 'Unknown', name) FROM customers;</code>
登錄后復(fù)制
轉(zhuǎn)換數(shù)據(jù)類型:可以用 DECODE 函數(shù)將數(shù)據(jù)從一種類型轉(zhuǎn)換為另一種類型,例如:
<code class="sql">SELECT DECODE(age, NULL, 0, age) FROM employees;</code>
登錄后復(fù)制
根據(jù)條件返回不同的值:可以用 DECODE 函數(shù)根據(jù)條件返回不同的值,例如:
<code class="sql">SELECT DECODE(gender, 'M', 'Male', 'F', 'Female', 'Other') FROM students;</code>
登錄后復(fù)制
示例
以下示例演示 DECODE 函數(shù)的用法:
<code class="sql">CREATE TABLE sales ( product_id INT, product_name VARCHAR(50), category VARCHAR(20), sales_amount DECIMAL(10, 2) ); INSERT INTO sales (product_id, product_name, category, sales_amount) VALUES (1, 'Smart TV', 'Electronics', 2000.00), (2, 'iPhone', 'Electronics', 1500.00), (3, 'Coffee Maker', 'Appliances', 300.00), (4, 'Microwave', 'Appliances', 450.00); SELECT product_name, category, DECODE(sales_amount, NULL, 'No Sales', 2000.00, 'High Sales', 1500.00, 'Medium Sales', 'Low Sales') AS sales_category FROM sales;</code>
登錄后復(fù)制
輸出:
<code>product_name | category | sales_category Smart TV | Electronics | High Sales iPhone | Electronics | Medium Sales Coffee Maker | Appliances | Low Sales Microwave | Appliances | Low Sales</code>
登錄后復(fù)制