Oracle 比较两个名称并返回X个字符不同的结果

Oracle 比较两个名称并返回X个字符不同的结果,oracle,compare,names,Oracle,Compare,Names,我有两个结构与我正在比较的相同的表,MN1和MN2。两个表都包含一个名为onmfirst的列,该列包含一个名称。 我试图编写一个查询,比较名字,只选择不同的记录,特别是只返回名字 不匹配且至少在前3个字符处关闭的 查询当前正在运行一个简单的“mn1.onmfirst mn2.onmfirst”。当然,这将显示不匹配的记录,并且不需要 考虑到名字可能是相同的,只是缩短 例如: 返回/预期结果 约翰对亚当 史蒂文vs利亚姆 丽莎对桑德拉 未返回/省略 约翰vs约翰纳森 吉姆对吉米 格雷格对格雷

我有两个结构与我正在比较的相同的表,MN1和MN2。两个表都包含一个名为onmfirst的列,该列包含一个名称。 我试图编写一个查询,比较名字,只选择不同的记录,特别是只返回名字 不匹配且至少在前3个字符处关闭的

查询当前正在运行一个简单的“mn1.onmfirst mn2.onmfirst”。当然,这将显示不匹配的记录,并且不需要 考虑到名字可能是相同的,只是缩短

例如:

返回/预期结果

  • 约翰对亚当
  • 史蒂文vs利亚姆
  • 丽莎对桑德拉
未返回/省略

  • 约翰vs约翰纳森
  • 吉姆对吉米
  • 格雷格对格雷戈里

谢谢你

您只需比较子字符串即可

substr(mn1.onmfirst, 1,3) <> substr(mn2.onmfirst, 1,3)
substr(mn1.onmfirst,1,3)substr(mn2.onmfirst,1,3)