簡體   English   中英

連接同一表的兩列,忽略空值。 MySQL的

[英]Join two columns of the same table ignoring the null value. MySql

我正在嘗試聯接同一張表的兩列,但是,如果有空值(在我的情況下,它們在第二列中),則無論如何我都想獲取我感興趣的行,而不是放置空值,我會放'' 我要加入的列是SurnameName 換句話說,我嘗試使用:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM