比较电话号码sql

时间:2013-03-27 09:47:50

标签: sql sql-server sql-server-2008-r2

我在2个不同的表格中有2组电话号码,table 1具有01234567890的直接格式,而另一个表格有3种不同的格式,有时是01234567890或{{ 1}}或01234 567890

目前我只是在表上进行内部连接,只返回几行,但是期望更多,显然连接中会遗漏带连字符或空格的任何行。

系统的方式我无法用3种格式更改表格中的数据,因此无法对其进行标准化或清理等。

解决这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:6)

您可以考虑在第二个表格中创建一个计算列,以规范化电话号码格式 - 例如:

ALTER TABLE dbo.YourSecondTable
ADD NormalizedPhone AS REPLACE(REPLACE(PhoneColumn, '-', ''), ' ', '') PERSISTED

此表达式删除PhoneColumn中的所有空格和任何短划线,这些值存储在名为NormalizedPhone的新计算列中。

此列始终保持最新 - 即使您稍后更改了PhoneColumn的值。它将始终包含规范化电话号码自动

现在,您可以轻松加入规范化电话字符串上的两个表格,您应该可以获得更准确的结果。