mysql - 智能聚结

标签 mysql sql coalesce

我有一个包含一些基本地址数据的表格:

table structure

如果填写了 Street 和 Postcode/Town,我希望 Street 和 Postcode/Town 用逗号分隔。

从地址中选择 Concat(coalesce(Street,''),", ", coalesce(Postcode,''),"",coalesce(Town,''))

如果街道不可用,我只想用空格分隔邮政编码和城镇,如果连邮政编码都没有,我只想要名字(如果只是缺少邮政编码,我想有“街道、城镇”)

我如何设计查询,以便它考虑可用的内容以及需要放置逗号和空格的位置?

最佳答案

使用内置的 concat_ws() 最简单的方法:

select concat_ws(', ', Street, Postcode, Town)
from adresses;

如果任何参数为 NULL(分隔符除外),则 concat_ws() 会简单地跳过该字符串和相关的分隔符。

关于mysql - 智能聚结,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24918637/

相关文章:

MySQL:如何使用合并

mysql - SQL 数据透视语法

MySql 使用不同的值更新重复列的列

php - SQL 命令的类型强制转换警告

scala - 合并 Spark 数据框中的重复列

ruby - Ruby Sequel 是否与 SQL "coalesce"函数等效?

mysql - 在查询中连接表时遇到问题

mysql - 使用大量队列工作人员时如何避免大量连接?

mysql - 将多个 SQL 语句组合成一个

sql - 选择没有指针的对象