我们在自己的专栏中已经有了姓氏。
COL A COL E
SMITH 100 Main St.
SMITH 100 Main Street
我需要编码条件:
如果姓氏相同且街道号码相同 并且第一个单词是相同的(必须扩展到2个名称,甚至3个命名的街道)
所以在这里,我有SMITH,100和MAIN,然后我想只输出第一行。
这可以用普通的SQL编码还是需要存储过程?
答案 0 :(得分:1)
我假设美国地址,但同样的原则适用于任何地方。
要清除重复项,您需要标准化地址字段,使其格式一致, 仅在标准化后 ,您可以查询表中的重复项。您需要在sql server之外使用一些工具才能正确执行此操作。
市场上有几种工具。 USPS实际上有一个地址标准化格式,你需要一个符合邮局要求的工具,因为它包含一个数据库(所有提供商都使用,无论实施情况如何),为他们的工具提供正确的地址编号范围,方向性(N, S,W,E),前缀/后缀(Street,Avenue等)等等。
任何希望通过" USPS认证"给出一组测试数据来运行他们的工具,生成一个文本文件发送回USPS。该文件的内容必须匹配响应文件(由USPS创建,不与公众共享)100%以满足其严格的标准。
这是USPS的参考:http://pe.usps.gov/cpim/ftp/pubs/Pub28/pub28.pdf它不会直接帮助你,但它会帮助你理解。
手动解析,没有下面的USPS数据库,失败了。
答案 1 :(得分:0)
这是一个让你入门的例子。如果只有一个数字和一个单词,则存在ELSE条件,否则额外的CHARINDEX将导致错误。只需在真实查询中用col_E替换@blah。
.bashrc