首页 > 解决方案 > 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

标签: sqlsql-server

解决方案


使用合并:

SELECT 
    COALESCE(p.name, ph.name) as name 
FROM partner p  
FULL JOIN partner_history ph 
    ON p.idPartner = ph.idPartner

推荐阅读