2011-09-23 43 views
1

不好意思說:「是的,我知道我的表格不符合1NF。」 我正在用舊的東西,並且不能改變它。所以請, ,沒有評論。使用空值分割字段

現在,這個問題:

select title,address,zip,city, concat(telefon1,',',telefon2,',',telefon3) as phone

與此問題是,它工作得很好,直到concat一列的爲空或空。如果是這樣,那麼我得到一個Null結果爲電話欄。如果三者都有值,則一切按預期工作。

我該如何克服這個問題?

回答

4

試試這個:

SELECT title,address,zip,city,CONCAT(
    COALESCE(telefon1,''), ',', 
    COALESCE(telefon2,''), ',', 
    COALESCE(telefon3,'')) as phone 
+1

謝謝你,將在幾分鐘內選擇正確的答案。 即使由於'ifnull'也有效,它比你的解決方案稍慢。 – Dementic

+0

@Dementic:謝謝:) – Marco

+0

+1不知道聚結更快。也很好的格式:) – Bohemian

1

裹在ifnull(...,'')每個電話列轉null成空白。

select ..., 
    concat(ifnull(telefon1,''),',',ifnull(telefon2,''),',',ifnull(telefon3,'')) as phone