[英]Mysql Select with concat where some fields are null
我正在兩個表之間進行聯接,以將條件值推入記錄描述中。 問題是某些記錄沒有某些/所有條件,並且整個字符串失敗:
Select Concat(Description,'<br><br>',C.CritieraNameA,': ',T.CriteriaValueA,'<br><br>',C.CriteriaNameB,': ',T.CriteriaValueB) From Records T Inner Join Company C On T.CompanyID=C.ID
所以我最終
專門從事乳制品的超市
時間:8 am-5pm
信用卡:是
和
隨風而逝
播放時間:太長
格式:DVD
直到我創下任何
有沒有一種方法可以執行此選擇,以便在記錄中找不到CriteriaValue時:
專門從事肉類的超市
小時:
信用卡:是
或公司中的CriteriaName:
保時捷
類型:跑車
它不只是返回空結果嗎?
在這種情況下, IfNull
可能很有用-它會檢測一個null並將其替換為您提供的值。
IFNULL(CriteriaTypeA , "not given")
Concat_WS的解救:
Concat_WS('',C.CriteriaTypeA,': ',T.CriteriaValue)
應該這樣做:
Select Concat(
Description,
Coalesce(Concat('<br><br>',C.CritieraNameA,': ',T.CriteriaValueA), ''),
Coalesce(Concat('<br><br>',C.CriteriaNameB,': ',T.CriteriaValueB), '')
)
From Records T
Inner Join Company C
On T.CompanyID=C.ID
但是正如我在評論中寫道:不要在SQL中實現輸出邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.