SQL列合并

时间:2013-08-21 11:55:01

标签: mysql sql merge

Address1,
Address2,
TownCity,
Region,
Postcode,
Country,

嗨伙计和女孩,

我遇到了一个SQL问题。如果你能帮助我,那就太棒了。

顶部的表格(softc)有几列,可以合并为一个名为“contactinfo”的列

需要合并的列:

Address1,
Address2,
TownCity,
Region,
Postcode,
Country,

我已经尝试了UNION,但它过滤掉了具有NULL值的行。我有618条记录。当我做一个UNION时,它会出现750.(有些记录可能包含所有NULL。但是它们必须将单个映射到另一张表)

感谢您的帮助。谢谢


我正在使用mySQL

4 个答案:

答案 0 :(得分:0)

select IFNull(Address1,'') + IFNull(Address2,'') + IFNull(TownCity,'') + IFNull(Region,'') + IFNull(Postcode,'') + IFNull(Country,'') as ContactInfo from Softc

那应该是你想要的......

答案 1 :(得分:0)

试试这个

 select  ISNULL(Address1,'') + ISNULL(' '+Address2,'') + ISNULL(', '+TownCity,'') 
 + ISNULL(', '+Region,'') + ISNULL(', '+Postcode,'') + ISNULL(', '+Country,'') as ContactInfo from Softc

答案 2 :(得分:0)

您可以将合并/合并单元格与Concat命令

组合使用

示例:

CONCAT([Firstname],',',[lastname]) as Fullname.

expression = concat [fieldname / seperator],[fieldname / seperator],...............等

答案 3 :(得分:0)

数据库规范化的一部分是将数据分解为最分散的组件。你现在有。不要搞砸了。

解决问题的一个很好的长期解决方案是将所有空值更新为空字符串。然后更改这些列,以便它们不允许空值并且默认值为空字符串。这将允许您的concatonation查询运行得更快,因为您不必检查空值。

此外,如果频繁返回联系信息字符串的要求,您可以编写一个返回它的数据库函数。