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

PeopleSoft Query Manager多条件CASE语句取邮箱写法咨询

错误原因

你写的语句里THEN Q.EMAIL_ADDR AND 'OTHR'是语法逻辑错误:AND是布尔判断运算符,作用是连接两个判断条件返回真/假值,不能用来声明字段匹配规则,放在THEN子句里只会返回布尔运算结果,拿不到你需要的邮箱地址。

正确实现步骤
  • 配置表关联规则
    在PeopleSoft Query Manager中给G表和Q表配置左外连接(Left Outer Join),关联键选两表对应的业务唯一匹配字段(比如人员ID、客户ID这类和主体绑定的字段),同时把Q.E_ADDR_TYPE = 'OTHR'的规则直接写在Q表的连接条件里,不要写在全局WHERE筛选中,避免过滤掉G表存在有效邮箱、Q表无对应OTHR邮箱的记录。
  • 替换为正确的CASE表达式
    由于Q表的类型筛选已经在关联层完成,关联成功后Q.EMAIL_ADDR天然就是E_ADDR_TYPE为'OTHR'的邮箱值,直接使用下面的表达式即可:
    CASE
      WHEN G.EMAILID IS NULL THEN Q.EMAIL_ADDR
      ELSE G.EMAILID
    END
    
可选优化

如果需要兜底Q表也无对应OTHR邮箱的空值场景,可以给返回值加空值处理,避免最终结果返回NULL:

CASE
  WHEN G.EMAILID IS NULL THEN COALESCE(Q.EMAIL_ADDR, '')
  ELSE G.EMAILID
END

注:PeopleSoft Query Manager兼容标准SQL的COALESCE函数,如果你的环境版本不支持,可以替换为PeopleSoft原生空值处理函数NVL(Q.EMAIL_ADDR, '')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 04:33:26