【发布时间】:2018-12-28 20:35:24
【问题描述】:
我在 oracle 中有两个表。我需要在它们的多个列上找到重复项。它不应将空值视为其中任何一个中的重复值。我想要实现的是单行结果,这样我就可以将第一个用户作为 ExistingUser asn 每条在名称、电话或地址方面与其匹配的记录作为 MatchingUsers 列。
我有一个 NAME=MAX ZANEO 的用户,他的电话=123,地址=SesameStreet。然后按 ID 排序,之后我在表中还有两个用户,NAME=NODD A,电话=123,地址=华尔街。姓名=NODD B,电话=345,地址=芝麻街。然后,我希望结果以如下方式提供数据(粗体是列标题,斜体是列数据):ExistingUser=MAX ZANEO,MatchingUsers=NODD A,NODD B,MatchingData=电话、地址。
下面是数据来源的查询。
select
up.ID
, ( up.FirstName || ' ' || up.LastName ) as FullName
, up.Phone
, up.Email
, uph.Address
From
UserProfile up
Left Join
UserProfileHistory uph
on up.ID = uph.UserProfileId
Order by up.Created
【问题讨论】:
-
我没听懂。你能提供一些重复的例子和一些特殊重复的例子(有空值,但你的要求认为是重复的)。我你的例子有重复吗?
-
弗洛林,你检查过图片和问题吗?我希望你能从中得到一些想法。
-
请发布格式化文本而不是图像,并编辑您的问题以添加更多信息,而不是试图在 cmets 中解释。显示您尝试与各种场景进行比较的示例数据以及您想要的结果 - 再次以格式化文本的形式显示会很有用。
-
ID 和电话号码在您的数据中是否唯一?
-
是的。只有这些在我的数据中不重复。有什么方法可以使用它们来查找重复项吗?
标签: oracle oracle11g oracle-sqldeveloper