[英]Join two columns of the same table ignoring the null value. MySql
我正在嘗試聯接同一張表的兩列,但是,如果有空值(在我的情況下,它們在第二列中),則無論如何我都想獲取我感興趣的行,而不是放置空值,我會放''
。 我要加入的列是Surname
和Name
。 換句話說,我嘗試使用:
SELECT CONCAT(CSurname, ' ', CName)
FROM Client;
這樣,如果我有一個有效的姓氏值和一個空值名稱,我將獲得空值。 我使用MySql,謝謝。
如果要避免出現前導空格的問題,那么最簡單的方法可能是CONCAT_WS()
:
SELECT CONCAT_WS(' ', CSurname, CName)
FROM Client;
與大多數其他函數不同, CONCAT_WS()
忽略NULL
值(分隔符除外),從而大大簡化了此邏輯-特別是在使用多於兩列的情況下。
沒有它,等效邏輯可以表示為:
SELECT CONCAT(COALESCE(CONCAT(CSurname, ' '), ''), COALESCE(CName, ''))
嘗試ifnull函數
SELECT CONCAT(CSurname, ' ', IFNULL(CName,'')) FROM Client;
我沒有進行本地mysql安裝的嘗試,但是IFNULL函數應該可以滿足您的需求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.