使用此解决方案,我尝试将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的单个列中?
如果两个列都可以包含NULL,但是您仍想将它们合并为一个字符串,则最简单的解决方案是使用 CONCAT_WS() :
NULL
SELECT FirstName AS First_Name , LastName AS Last_Name , CONCAT_WS('', ContactPhoneAreaCode1, ContactPhoneNumber1) AS Contact_Phone FROM TABLE1
这样,您就不必分别检查NULL每列的-ness。
或者,如果两个列都实际定义为NOT NULL,则 CONCAT() 足够了:
NOT NULL
SELECT FirstName AS First_Name , LastName AS Last_Name , CONCAT(ContactPhoneAreaCode1, ContactPhoneNumber1) AS Contact_Phone FROM TABLE1
至于COALESCE,这是一个不同的野兽:给定参数列表,它返回第一个不是NULL。
COALESCE