首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL返回电子邮件,如果没有电子邮件返回电话号码,如果没有电话号码返回单元格(所有一列)

SQL返回电子邮件,如果没有电子邮件返回电话号码,如果没有电话号码返回单元格(所有一列)
EN

Stack Overflow用户
提问于 2017-02-18 01:28:53
回答 4查看 127关注 0票数 0

这是我收到的一个例子,但经过研究后,我仍然被卡住了。他要我回传邮箱地址,如果没有邮件回传电话号码,如果没有电话号码回传手机(一栏全部)。我已经连接了我的表,但是不确定我应该使用WHERE NOT EXISTS还是IF/ELSE

代码语言:javascript
运行
复制
SELECT * 
FROM entity e
LEFT OUTER JOIN telephone t ON t.id_number = e.id_number
LEFT OUTER JOIN email eml ON eml.id_number = e.id_number
EN

回答 4

Stack Overflow用户

发布于 2017-02-20 15:47:24

您可以使用将返回第一个非空值的COALESCE function

票数 0
EN

Stack Overflow用户

发布于 2017-02-20 18:45:17

您可以使用coalesce函数返回first not null结果,虽然不确定返回单元格是什么意思,但我想您已经明白了

代码语言:javascript
运行
复制
 with xx as
     (select 'email@mail.com' email, null telephone, null cell
        from dual
      union all
      select null email, '123456' telephone, null cell
        from dual
      union all
      select null email, null telephone, '5' cell
        from dual)
    select coalesce(email, telephone, cell) first_not_null from xx
票数 0
EN

Stack Overflow用户

发布于 2017-02-21 21:31:21

我最终让它像这样工作:

代码语言:javascript
运行
复制
CASE WHEN TRIM(eml.email_address) IS NOT NULL THEN eml.email_address

WHEN TRIM(t.telephone_number) IS NOT NULL THEN 'H: (' || t.area_code || ')'               || SUBSTR(t.telephone_number, 1, 3) || '-' || SUBSTR(t.telephone_number, 4, 4)

WHEN TRIM(t2.telephone_number) IS NOT NULL THEN 'C: (' || t2.area_code || ')' || SUBSTR(t2.telephone_number, 1, 3) || '-' || SUBSTR(t2.telephone_number, 4, 4) 

 ELSE 'No Email/Phone Found'

END AS "EMAIL/PHONE"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42304032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档