【发布时间】:2014-01-08 17:23:11
【问题描述】:
我正在尝试创建一个 SQL 语句来匹配身份证号或邮政编码,然后分配一个新的身份证号
我最终想要的是“newid”,它可以正确识别前四条记录是同一个人(即使记录 2 的邮政编码不同)。
record id postcode newid
--------------------------
1 1 1 1
2 1 2 1
3 1 1 1
4 2 1 1
5 3 3 2
任何建议将不胜感激。
【问题讨论】:
-
抱歉,您能澄清一下吗?你有 3 个 id 为 1 - 一个 id 为 2 - 其中一个 id 为 1 - 一个的邮政编码为 2,一个 id 为 2 的邮政编码为 1 - 现在我们可以说(如果 id 或 postcode = 1 - 新 id -> 1?? 你是这个意思吗?)
-
不完全是,因为列之间的数字代码不一定相同(数字用于说明)。邮政编码值可以是任何值,例如A,B,A,A,C 或 4,5,4,4,6。该语句需要“记住”已根据 id 列分配的 ID。
-
我仍然不明白 - 远离列、表格等。你实际上想要实现什么 - 从你所展示的没有独特的模式 - 再添加几行到你的例如,如果你可以
-
我正在尝试将属于同一个人的记录合并在一起。所以语句需要识别记录 1 到 4 是相同的,因为要么是 id 号要么是邮政编码匹配。假设邮政编码列是 A,B,A,A,C。记录 4 与记录 1 和 2 具有相同的邮政编码,因此应为其分配与记录 1 到 3 相同的 ID 号。
-
按照这个逻辑,为什么不应该将记录 1-3 与记录 4 的 id 匹配呢?即,为什么记录 1-3 不应该接收 newid 值 2 而不是相反?
标签: sql merge match postal-code