Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在Oracle中创建主ID_Sql_Oracle_Plsql_Matching - Fatal编程技术网

Sql 在Oracle中创建主ID

Sql 在Oracle中创建主ID,sql,oracle,plsql,matching,Sql,Oracle,Plsql,Matching,比如说,我有一个数据表,其中包含以下列: EMAIL PHONE IP 123@ABC.COM 123456 0.0.0.0 123@ABC.COM 123456 0.0.0.1 123@ABC.COM 654321 0.0.0.0 321@ABC.COM 123456 0.0.0.0 000@ABC.COM 000000 1.1.1.1 000@AB

比如说,我有一个数据表,其中包含以下列:

EMAIL          PHONE          IP
123@ABC.COM    123456         0.0.0.0
123@ABC.COM    123456         0.0.0.1
123@ABC.COM    654321         0.0.0.0
321@ABC.COM    123456         0.0.0.0
000@ABC.COM    000000         1.1.1.1
000@ABC.COM    000001         1.1.1.2
我想在该数据表的顶部创建一个表,该表具有主ID。规则是,只要每个属性(电子邮件、电话、IP)中的一个匹配,那么它们将具有相同的主ID

例如:

EMAIL          PHONE          IP          Master_ID 
123@ABC.COM    123456         0.0.0.0     1
123@ABC.COM    123456         0.0.0.1     1
123@ABC.COM    654321         0.0.0.0     1 
321@ABC.COM    123456         0.0.0.0     1
000@ABC.COM    000000         1.1.1.1     2
000@ABC.COM    000001         1.1.1.2     2

对于如何在Oracle中使用query/function来完成这项工作,有什么建议吗?

您的逻辑似乎是基于行的顺序。在任何关系数据库中,表中的行没有“自然”顺序;如果要在逻辑中使用显式顺序,则必须提供显式顺序。您是否还有一列应该用于此目的,带有序列号或时间戳之类的内容?如前所述,这个问题毫无意义。也许你误解了。这里没有秩序。基本上,我有3个属性(电子邮件、电话和ip)的记录。只要我有1个与现有记录匹配的属性,我就需要它们具有相同的master_id。也许我误解了,但我对此表示怀疑。很可能你误解了。当你说“我有记录进来”和“现有记录”时,这意味着一些记录是“存在的”,而另一些不同的记录是“进来的”。这意味着一些记录在其他记录之前。按什么顺序?那么,例如,为什么000@ABC.COM等于1,并且为123@ABC.COM等于2?是的,它可以是这样的,或者任何ID,我也在考虑让它由sys_guid()生成。我需要它是一个唯一的ID。这里的图片没有顺序。是的,我有现有的记录,将来还会有更多的记录。你想要的可能没有意义。考虑以下情况:只看电话(简化)和IP(简化)-如果你目前有两行,值123-45和1.23和123-89%和1.44?它们没有共同点,因此第一个可能有master_id=1,第二个master_id=2。现在进入另一行,值为123-45和1.44。它应该得到什么主id,1还是2?它应该同时得到1和2;现在,原来的两行通过第三行“连接”。这三行现在是否应该具有相同的主id?若否,原因为何?(什么逻辑?)您的逻辑似乎基于行的顺序。在任何关系数据库中,表中的行没有“自然”顺序;如果要在逻辑中使用显式顺序,则必须提供显式顺序。您是否还有一列应该用于此目的,带有序列号或时间戳之类的内容?如前所述,这个问题毫无意义。也许你误解了。这里没有秩序。基本上,我有3个属性(电子邮件、电话和ip)的记录。只要我有1个与现有记录匹配的属性,我就需要它们具有相同的master_id。也许我误解了,但我对此表示怀疑。很可能你误解了。当你说“我有记录进来”和“现有记录”时,这意味着一些记录是“存在的”,而另一些不同的记录是“进来的”。这意味着一些记录在其他记录之前。按什么顺序?那么,例如,为什么000@ABC.COM等于1,并且为123@ABC.COM等于2?是的,它可以是这样的,或者任何ID,我也在考虑让它由sys_guid()生成。我需要它是一个唯一的ID。这里的图片没有顺序。是的,我有现有的记录,将来还会有更多的记录。你想要的可能没有意义。考虑以下情况:只看电话(简化)和IP(简化)-如果你目前有两行,值123-45和1.23和123-89%和1.44?它们没有共同点,因此第一个可能有master_id=1,第二个master_id=2。现在进入另一行,值为123-45和1.44。它应该得到什么主id,1还是2?它应该同时得到1和2;现在,原来的两行通过第三行“连接”。这三行现在是否应该具有相同的主id?若否,原因为何?(什么逻辑?)