You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL:左连接失败时在列中显示指定值的实现方法

实现左连接无匹配时显示指定值的方案

当然可以实现啦!你可以借助SQL里的通用函数COALESCE()(或者部分数据库专属的IFNULL()/ISNULL())来处理左连接后出现的NULL值,把它替换成你想要的指定内容。

步骤说明

  1. 先看基础的左连接SQL,这时候未匹配的行对应的分类名称会是NULL:
SELECT p.id, c.name
FROM Page p
LEFT JOIN Category c ON p.cat = c.id;

执行后结果会是:

idname
1NULL
2Foo
3Baz
  1. 用COALESCE()替换NULL值
    COALESCE()函数会返回传入参数中的第一个非NULL值,我们把它用来替换左连接失败时的NULL:
SELECT p.id, COALESCE(c.name, '未分类') AS category_name
FROM Page p
LEFT JOIN Category c ON p.cat = c.id;

这样执行后,cat=0的行就会显示指定的未分类:

idcategory_name
1未分类
2Foo
3Baz

数据库适配说明

  • 如果是MySQL数据库,也可以用专属的IFNULL()函数,效果和上面一致:
SELECT p.id, IFNULL(c.name, '未分类') AS category_name
FROM Page p
LEFT JOIN Category c ON p.cat = c.id;
  • 如果是SQL Server,可以用ISNULL()函数,用法类似:
SELECT p.id, ISNULL(c.name, '未分类') AS category_name
FROM Page p
LEFT JOIN Category c ON p.cat = c.id;

不过COALESCE()是SQL标准函数,支持大多数数据库(比如PostgreSQL、MySQL、SQL Server等),通用性更强。

内容的提问来源于stack exchange,提问作者Frank Groot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:03:39