sql >> Base de Datos >  >> RDS >> Sqlserver

SQL:consultar el número de teléfono que se almacena de manera inconsistente

SI puede modificar la tabla (suponiendo que sea SQL Server 2005 y hacia arriba), puede agregar una columna calculada a su tabla y conservarla. Esta columna podría contener una representación "limpia" de su campo "número de teléfono".

Algo como esto:

 create function dbo.CleanPhone(@phone varchar(100))
 returns varchar(100)
 with schemabinding
 as begin
   return
     replace(replace(replace(replace(replace(replace(@phone, ' ', ''), 
             '-', ''), '(', ''), ')', ''), '-', ''), '+', '')
 end

y luego:

alter table (yourtable)
 add cleanedPhone as dbo.CleanPhone(Phone) persisted

Ahora, su columna "Teléfono limpio" siempre contendría una versión "limpia" de su número de teléfono, siempre algo como:555123456.

Dado que es un campo PERSISTIDO, tampoco incurre en una penalización de rendimiento cuando consulta:el valor se crea y almacena en su tabla, y está disponible como una columna normal.

Sobre esto, ahora puede consultar con bastante facilidad.

Marc