sql - SQL如何在2列之间找到第一个非空值
问题描述
给定两张表
partner
ID | name
----------
1 | NULL
2 | bob
3 | C
4 | tom
partner history
ID | name
----------
1 | joe
2 | bob
3 | C
4 | NULL
我想获取列名的第一个非空值。
SELECT ???? as name FROM partner p FULL JOIN partner_history ph ON p.idPartner = ph.idPartner
解决方案
使用合并:
SELECT
COALESCE(p.name, ph.name) as name
FROM partner p
FULL JOIN partner_history ph
ON p.idPartner = ph.idPartner
推荐阅读
- entity-framework - 实体框架多对多顺序
- python - Facebook 先知中的 'yhat'、'yhat_lower'、'yhat_upper' 是什么?
- git - 没有注册源代码控制提供商 - 如何在 mac 上的可视代码中注册 SCM?
- java - 如何使 BLOB 在 Oracle 和 PostgreSQL 上工作?
- ios - Swift - IOS,Spring:使用 StompClientLib 和 Spring 发送和接收 STOMP 消息的问题
- linux - Windows 上的 Linux 容器 (LCOW) 功能与在 Windows 上运行 Linux VM
- angular - Angular.json 脚本未加载
- c# - VS 显示不在 csproj 文件中的引用
- python - 在 Python 中创建 Singleton 类并计算实例数
- php - 用php循环html表中的行