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

嗨,伙计们,女孩们,

我遇到了一个 SQL 问题。如果你能帮我解决这个问题,那就太好了。

顶部的表(softc)有几列,它们 id 喜欢合并成一个名为“contactinfo”的列

需要合并的列:

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

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

感谢您的帮助。谢谢


我正在使用 mySQL

4

4 回答 4

0

尝试这个

 select  ISNULL(Address1,'') + ISNULL(' '+Address2,'') + ISNULL(', '+TownCity,'') 
 + ISNULL(', '+Region,'') + ISNULL(', '+Postcode,'') + ISNULL(', '+Country,'') as ContactInfo from Softc
于 2013-08-21T12:07:31.650 回答
0

您可以使用 Concat 命令组合合并/合并单元格

例子 :

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

表达式 = concat[字段名/分隔符]、[字段名/分隔符]、......等

于 2013-08-21T12:08:44.337 回答
0

数据库规范化的一部分是将数据分解成最离散的组件。你现在有了。不要胡说八道。

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

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

于 2013-08-21T12:24:21.677 回答
0
select IFNull(Address1,'') + IFNull(Address2,'') + IFNull(TownCity,'') + IFNull(Region,'') + IFNull(Postcode,'') + IFNull(Country,'') as ContactInfo from Softc

这应该是你想要的...

于 2013-08-21T11:58:40.100 回答