我正在两个表之间进行连接,以将标准值推送到记录描述中。问题是某些记录没有部分/全部标准,整个字符串都失败了:
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点至下午5点
信用卡:是
和
飘了
运行时间:太长
格式:DVD
这个工作正常,直到我找到
的记录当它没有在记录中找到CriteriaValue时,有没有办法选择这样做:
专营肉类的超市
时间:
信用卡:是
或公司中的CriteriaName:
保时捷
类型:跑车
它不会简单地返回一个空结果?
答案 0 :(得分:1)
IfNull
可能很有用 - 它会检测到null并将其替换为您提供的值。
IFNULL(CriteriaTypeA , "not given")
答案 1 :(得分:1)
Concat_WS救援:
Concat_WS('',C.CriteriaTypeA,': ',T.CriteriaValue)
答案 2 :(得分:0)
这应该这样做:
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中实现输出逻辑。