我在包含美国邮政编码的数据库中有一个地址表
表中的列称为zip5和zip4
我想将这些邮政编码与-之间
我当前正在使用mysql,我正在使用的查询是
从地址限制500中选择zip5,zip4,concat(zip5,'-',zip4)zip;
现在在某些情况下zip4列为空,但zip5列中有数据
在这种情况下,新的串联列调用zip变为null。
我不希望这种情况发生。如果zip4至少没有数据,则应该显示zip5中的数据,且中间没有-。
最佳答案
您可以使用COALESCE
select zip5,
zip4,
concat(zip5,'-',coalesce(zip4,'')) zip
from address
或更好的
CONCAT_WS
select zip5,
zip4,
CONCAT_WS('-', zip5, zip4) zip
from address