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

如何消除SQL查询结果中的NULL值?附查询及预期结果

解决方案

你需要通过分组聚合消除NULL值,当前查询会把同一用户的手机号、邮箱拆分成两行显示,聚合函数可以将同一用户的非空数据合并到一行:

SELECT ut.username,
       MAX(case when FieldID = 1 then Data end) as phone,
       MAX(case when FieldID = 2 then Data end) as email
FROM usertable ut
JOIN userdata ud
ON ut.ID = ud.userID
GROUP BY ut.ID, ut.username;

补充说明

  • MAX()(或MIN())聚合函数会自动忽略NULL值,仅保留每个用户对应FieldID的有效数据
  • 分组时同时指定ut.ID和ut.username,避免同名用户导致数据错误合并
  • 若希望无数据时显示空字符串而非NULL,可嵌套COALESCE()函数,示例:
    COALESCE(MAX(case when FieldID = 1 then Data end), '') as phone
    

内容的提问来源于stack exchange,提问作者Emanuele Filiberto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:09:16