SQL必会的常用函数(一)条件函数

SQL条件函数详解

一、CASE WHEN:最通用的条件表达式

CASE 列名
    WHEN 值1 THEN 结果1
    WHEN 值2 THEN 结果2
    ELSE 默认结果
END
1. 简单CASE表达式

示例

SELECT 
    name,
    CASE grade
        WHEN 'A' THEN '优秀'
        WHEN 'B' THEN '良好'
        WHEN 'C' THEN '及格'
        ELSE '不及格'
    END AS grade_desc
FROM students;
2. 搜索CASE表达式(更灵活)

示例

SELECT 
    salary,
    CASE 
        WHEN salary < 3000 THEN '低'
        WHEN salary BETWEEN 3000 AND 8000 THEN '中'
        WHEN salary > 8000 THEN '高'
        ELSE '未知'
    END AS level
FROM employees;

二、COALESCE:返回第一个非空值

COALESCE函数
COALESCE(value1, value2, ..., valueN)

返回参数列表中第一个非NULL值,支持任意数量参数:

示例

-- 优先使用手机号,其次座机,最后固定电话
SELECT 
    name,
    COALESCE(mobile, phone, fixed_line, '无联系方式') AS contact
FROM users;

与 CASE WHEN 对比

-- 使用COALESCE(简洁):返回第一个非 NULL 表达式
SELECT
    COALESCE(email, '无邮箱') AS email_status
FROM users;

-- 使用CASE WHEN(冗长):显式判断 NULL
SELECT
    CASE
        WHEN email IS NOT NULL THEN email
        ELSE '无邮箱'
    END AS email_status
FROM users;

三、NULLIF:返回NULL如果两值相等

NULLIF函数
NULLIF(expr1, expr2)

当 expr1 = expr2 时返回 NULL,否则返回 expr1

主要用途

     避免除零错误NULLIF(denominator, 0)

     数据去重标记:当两列相同时转为NULL

示例

SELECT 
    numerator,
    denominator,
    numerator / NULLIF(denominator, 0) AS safe_ratio
FROM fractions;
-- 当denominator=0时,结果变为NULL而不是报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值