4

我在 2 个不同的表格中有 2 组电话号码,table 1有直接的格式,01234567890另一个表格有 3 种不同的格式,有时是01234567890or01234 56789001234-567890

目前,我只是在表上进行内部联接,并且只返回几行,但会期望更多,因为显然任何带有连字符或空格的东西都会从联接中丢失。

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

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

4

1 回答 1

6

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

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

此表达式从 中删除任何空格和任何破折号,PhoneColumn并且这些值存储在名为 的新计算列NormalizedPhone中。

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

现在,您可以轻松地将标准化电话字符串上的两个表连接起来,并且您应该得到更准确的结果。

于 2013-03-27T09:51:35.643 回答