sql中decode的用法-SQL
SQL 中 DECODE 函数的用法
DECODE 函数概述
DECODE 函数是一个 SQL 函数,用于根据条件表达式评估不同的值。它类似于 IF-ELSE 结构,但允许使用更简洁的语法。
语法
DECODE(expression, value1, result1, value2, result2, ..., default_result)
登录后复制
参数
- expression:要评估的表达式。
- value1, value2, ...:要检查的条件值。
- result1, result2, ...:与对应条件值匹配时返回的结果值。
- default_result:如果表达式不匹配任何条件值,则返回的默认结果值。
用法
DECODE 函数有以下用法:
- 替换 NULL 值:可以用 DECODE 函数替换 NULL 值为指定值,例如:
SELECT DECODE(name, NULL, 'Unknown', name) FROM customers;
登录后复制
- 转换数据类型:可以用 DECODE 函数将数据从一种类型转换为另一种类型,例如:
SELECT DECODE(age, NULL, 0, age) FROM employees;
登录后复制
- 根据条件返回不同的值:可以用 DECODE 函数根据条件返回不同的值,例如:
SELECT DECODE(gender, 'M', 'Male', 'F', 'Female', 'Other') FROM students;
登录后复制
示例
以下示例演示 DECODE 函数的用法:
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;
登录后复制
输出:
product_name | category | sales_category Smart TV | Electronics | High Sales iPhone | Electronics | Medium Sales Coffee Maker | Appliances | Low Sales Microwave | Appliances | Low Sales
登录后复制