mysql实用系列:coalesce函数的使用

devtools/2025/1/16 7:49:57/

COALESCE 是 SQL 语言中的一个函数,它的作用是返回第一个非空表达式的结果。如果所有的表达式都是空值(NULL),则 COALESCE 函数返回 NULL。这个函数常用于处理可能存在 NULL 值的数据列,确保查询结果更加稳定和可预测

下面是 COALESCE 函数的一些基本用法示例:

  1. 基本使用
    sql">SELECT COALESCE(column1, '默认值') FROM table_name;
    
    如果 column1 的值为 NULL,那么将返回 '默认值'

在工作中常常用来返回的字段不存在(即为null),需要返回默认值(如"",或者自定义的默认值)

  1. 多个参数

    sql">SELECT COALESCE(column1, column2, '默认值') FROM table_name;
    

    这里 COALESCE 会检查 column1column2,返回第一个非 NULL 的值。如果 column1column2 都是 NULL,那么返回 '默认值'

  2. 结合其他函数

    sql">SELECT COALESCE(SUBSTRING(column1, 1, 3), '默认值') FROM table_name;
    

    如果 column1 是 NULL 或者截取的结果为空字符串,将返回 '默认值'

  3. 在 JOIN 语句中

    sql">SELECT t1.column1, COALESCE(t2.column2, '默认值') 
    FROM table1 t1
    LEFT JOIN table2 t2 ON t1.id = t2.id;
    

    如果 table2 中没有与 table1 匹配的行,t2.column2 将为 NULL,此时 COALESCE 将返回 '默认值'

COALESCE 函数在处理可能存在 NULL 值的数据时非常有用,它可以帮助确保查询结果的一致性,特别是在报表生成和数据分析中。


http://www.ppmy.cn/devtools/103980.html

相关文章

Android 中ebpf 的集成和调试

1. BPF 简介 BPF,是Berkeley Packet Filter的简称,最初构想提出于 1992 年。是一种网络分流器和数据包过滤器,允许早操作系统级别捕获和过滤计算机网络数据包。它为数据链路层提供了一个原始接口,允许发送和接收原始链路层数据包…

python中代码缩进

是指每行语句开始前的空白区域 用来表示python程序之间的包含和层次关系 类定义、函数定义、流程控制语句以及异常处理语句等行尾的冒号和下一行的缩进表示一个代码块的开始、而缩进结束,则表示一个代码块的结束 通常情况下采用4个空格作为一个缩进量 例如&#…

谷粒商城实战笔记-269~271-商城业务-订单服务-bug修改

文章目录 一,269-商城业务-订单服务-bug修改二,270-商城业务-订单服务-订单确认页渲染三,271-商城业务-订单服务-订单确认页库存查询四,272-商城业务-订单服务-订单确认页模拟运费效果 一,269-商城业务-订单服务-bug修…

系统编程-消息队列

消息队列 目录 消息队列 引入 一、消息队列的特点 二、使用指令查看消息队列 三、使用消息队列进行通信的步骤 1、获取键值 2、创建或获取消息队列 id 3、使用消息队列进行数据的传输 4、msgrcv -- 从消息队列中读取数据 5、消息队列的多种操作函数 引入 -- 进程间…

ChatGPT 3.5/4.0简单使用手册

ChatGPT 3.5/4.0 是一种先进的人工智能聊天机器人,能够理解和生成自然语言文本,为用户提供信息检索、问题解答、语言翻译等服务。 系统要求 操作系统:无特定要求,支持主流操作系统。网络连接:需要稳定的网络连接来使…

计算机网络概述(网络结构)

目录 网络结构组成 1.网络边缘 1.1使用基础设施的面向连接的可靠服务(TCP) 1.2使用基础设施的无连接的不可靠服务(UDP) 2.网络核心 2.1电路交换(线路交换) 2.2分组交换 排队延迟和丢失 2.3网络核心…

c++ STL 容器相关

容器库&#xff1a;容器库 - cppreference.com 一、std::priority_queue #include <queue> template<class T,class Container std::vector<T>,class Compare std::less<typename Container::value_type> > class priority_queue; 优先级队列是一…

[Leetcode 435][Medium]-无重叠区间-贪心

目录 一、题目描述 二、整体思路 三、代码 一、题目描述 题目地址 二、整体思路 要求移除区间的最小个数&#xff0c;也就是要求使得剩余区间互不重叠的最大区间数。 可以先将区间按右端点的值进行升序排序,然后遍历数组&#xff0c;在此基础上保留左端点>最小右端点的值…