You need to enable JavaScript to run this app. SQL Server 按空值规则拼接姓名否则返回用户名的SELECT查询
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 按空值规则拼接姓名否则返回用户名的SELECT查询

SQL Server 需求实现查询语句

核心逻辑说明

  • 触发返回UserName的条件:FirstName或LastName任意一个为NULL、空字符串,如需兼容全空格脏数据可追加TRIM判断
  • 满足拼接条件时,返回固定格式LastName, FirstName的拼接字符串

实现代码

全版本兼容写法(CASE语句,适配所有SQL Server版本)

SELECT
    CASE
        WHEN ISNULL(FirstName, '') = '' OR ISNULL(LastName, '') = ''
            THEN UserName
        ELSE CONCAT(LastName, ', ', FirstName)
    END AS QueryResult
FROM 你的实际业务表名;

说明:

  • ISNULL(字段, '')会把字段为NULL的场景统一转为空字符串,和原生空字符串的判断逻辑合并,避免冗余判断条件
  • 用CONCAT做拼接比直接用+更安全,会自动完成类型转换,避免隐式转换报错
  • 如需过滤全空格的无效脏数据,可将判断条件调整为:
    WHEN TRIM(ISNULL(FirstName, '')) = '' OR TRIM(ISNULL(LastName, '')) = ''
    

高版本简化写法(适配SQL Server 2012及以上版本)

SELECT
    IIF(
        ISNULL(FirstName, '') = '' OR ISNULL(LastName, '') = '',
        UserName,
        CONCAT(LastName, ', ', FirstName)
    ) AS QueryResult
FROM 你的实际业务表名;

匹配验证

上述查询对示例表的输出完全符合期望:

  • 两个字段都有效(Bob/Jones、George/Glass)的记录,自动返回Jones, Bob、Glass, George格式结果
  • 任意姓名字段为NULL/空的记录,直接返回对应UserName值,和示例输出完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 15:24:05