Mysql 列的串联
我有一个包含美国邮政编码的数据库中的地址表 表中的列称为zip5和zip4 我想把这些邮政编码和-结合起来 我目前使用的是mysql,我使用的查询是 从地址限制500中选择zip5、zip4、concat(zip5’-’、zip4)zip 现在,在某些情况下,zip4列为null,但zip5列中有数据 在这种情况下,新的连接列调用zip将变为null 我不想发生这种事。如果zip4没有数据,至少它应该显示zip5的数据,并且中间没有Mysql 列的串联,mysql,sql,Mysql,Sql,我有一个包含美国邮政编码的数据库中的地址表 表中的列称为zip5和zip4 我想把这些邮政编码和-结合起来 我目前使用的是mysql,我使用的查询是 从地址限制500中选择zip5、zip4、concat(zip5’-’、zip4)zip 现在,在某些情况下,zip4列为null,但zip5列中有数据 在这种情况下,新的连接列调用zip将变为null 我不想发生这种事。如果zip4没有数据,至少它应该显示zip5的数据,并且中间没有 SELECT CASE WHEN z
SELECT
CASE
WHEN zip4 IS NULL THEN zip5
ELSE concat(zip5,'-',zip4)
END zip
from address limit 500;
您可以使用
合并
select zip5,
zip4,
concat(zip5,'-',coalesce(zip4,'')) zip
from address
或者更好
@ChrisB可能重复该问题与不正确使用+进行连接有关。
select zip5,
zip4,
CONCAT_WS('-', zip5, zip4) zip
from address