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

Oracle中仅非空字段参与拼接的SQL查询实现问题

Oracle用户信息字段拼接查询实现

以下是满足需求的查询写法,兼容Age为NULL和存储空值字符串两种场景:

SELECT 
  CASE
    WHEN S.ID IS NOT NULL AND S.Age IS NOT NULL AND TRIM(S.Age) != '空值'
    THEN S.Name || ' (' || S.ID || '-' || S.Age || ')'
    ELSE S.Name || ' (' || S.ID || ')'
  END AS Details
FROM 你的实际表名 S;

如果你的Age字段为数值类型,仅存在NULL一种空值情况,可以使用更简洁的NVL2写法:

SELECT 
  S.Name || ' (' || S.ID || NVL2(S.Age, '-' || S.Age, '') || ')' AS Details
FROM 你的实际表名 S;

结果验证

针对你提供的样例数据,两种写法都会返回符合要求的结果:

Details
Adam (1-21)
Mike (2-23)
Daniel (3)
Josh (4)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:57:03