sql >> Database >  >> RDS >> Sqlserver

SQL - Zoek telefoonnummer dat inconsistent is opgeslagen

ALS u de tabel kunt wijzigen (ervan uitgaande dat het SQL Server 2005 is) en hoger), kunt u een berekende kolom aan uw tabel toevoegen en deze behouden. Deze kolom kan een "opgeschoonde" weergave van uw "telefoonnummer"-veld bevatten.

Zoiets als dit:

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

en dan:

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

Nu zou de kolom 'Opgeschoonde telefoon' altijd een 'opgeschoonde' versie van uw telefoonnummer bevatten - altijd zoiets als:555123456.

Omdat het een PERSISTED-veld is, loopt u ook geen prestatieverlies bij het opvragen - de waarde wordt gemaakt en opgeslagen in uw tabel en is beschikbaar als een normale kolom.

Hierover kun je nu vrij gemakkelijk vragen.

Marc



  1. Hoe goed is het geografische datatype in SQL Server 2008?

  2. Hoe ArangoDB op Ubuntu 20.04 te installeren

  3. mysql trigger opgeslagen trigger wordt al gebruikt door de instructie die de opgeslagen trigger heeft aangeroepen

  4. mysql-fout 1364 Veld heeft geen standaardwaarden