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

SQL查询过滤X2时保留Status为NULL的行

SQL查询保留NULL行及NULL转空字符串的解决方案

一、实现保留NULL行的查询

SQL里NULL和任何值做比较的结果都是UNKNOWN,所以Status != 'X2'会自动过滤掉NULL行。要同时拿到X1和NULL的行,有两种直接可行的写法:

  • 直接在WHERE条件里单独判断NULL:
    SELECT * FROM surrtest t WHERE t.Status != 'X2' OR t.Status IS NULL
    
  • 用COALESCE函数把NULL转成一个不会等于X2的默认值(比如空字符串)再做比较:
    SELECT * FROM surrtest t WHERE COALESCE(t.Status, '') != 'X2'
    

二、不修改数据将NULL转为空字符串

如果需要在查询结果里把NULL显示为空字符串,完全不需要改动原表数据,直接在SELECT字段里处理即可:

  • 通用写法(大部分数据库支持COALESCE):
    SELECT 
        t.*,
        COALESCE(t.Status, '') AS Status_Display
    FROM surrtest t 
    WHERE t.Status != 'X2' OR t.Status IS NULL
    
  • 针对特定数据库的写法:
    • MySQL/MariaDB用IFNULL:
      SELECT 
          t.*,
          IFNULL(t.Status, '') AS Status_Display
      FROM surrtest t 
      WHERE t.Status != 'X2' OR t.Status IS NULL
      
    • SQL Server用ISNULL:
      SELECT 
          t.*,
          ISNULL(t.Status, '') AS Status_Display
      FROM surrtest t 
      WHERE t.Status != 'X2' OR t.Status IS NULL
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:41:31