一尘不染

MySQL SELECT AS将两列合并为一

mysql

使用此解决方案,我尝试将COALESCE用作MySQL查询的一部分,该查询使用SELECT As输出到csv文件,以在导出数据时命名列名称。

SELECT FirstName AS First_Name
     , LastName AS Last_Name
     , ContactPhoneAreaCode1
     , ContactPhoneNumber1
     , COALESCE(ContactPhoneAreaCode1, ContactPhoneNumber1) AS Contact_Phone 
  FROM TABLE1

我想要3列:名字,姓氏和联系人电话

我得到5列:名字,姓氏,ContactPhoneAreaCode1,ContactPhoneNumber1和Contact_Phone

如何在查询中将ContactPhoneAreaCode1和ContactPhoneNumber1的合并隐藏到Contact_Phone的单个列中?


阅读 351

收藏
2020-05-17

共1个答案

一尘不染

如果两个列都可以包含NULL,但是您仍想将它们合并为一个字符串,则最简单的解决方案是使用
CONCAT_WS()

SELECT FirstName AS First_Name
     , LastName AS Last_Name
     , CONCAT_WS('', ContactPhoneAreaCode1, ContactPhoneNumber1) AS Contact_Phone 
  FROM TABLE1

这样,您就不必分别检查NULL每列的-ness。

或者,如果两个列都实际定义为NOT NULL,则
CONCAT()
足够了:

SELECT FirstName AS First_Name
     , LastName AS Last_Name
     , CONCAT(ContactPhoneAreaCode1, ContactPhoneNumber1) AS Contact_Phone 
  FROM TABLE1

至于COALESCE,这是一个不同的野兽:给定参数列表,它返回第一个不是NULL

2020-05-17