JIKA Anda dapat mengubah tabel (dengan asumsi itu adalah SQL Server 2005 dan lebih tinggi), Anda bisa menambahkan kolom yang dihitung ke tabel Anda, dan mempertahankannya. Kolom ini dapat menampung representasi "dibersihkan" dari bidang "nomor telepon" Anda.
Sesuatu seperti ini:
create function dbo.CleanPhone(@phone varchar(100))
returns varchar(100)
with schemabinding
as begin
return
replace(replace(replace(replace(replace(replace(@phone, ' ', ''),
'-', ''), '(', ''), ')', ''), '-', ''), '+', '')
end
lalu:
alter table (yourtable)
add cleanedPhone as dbo.CleanPhone(Phone) persisted
Sekarang, kolom "Telepon Dibersihkan" Anda akan selalu berisi versi nomor telepon Anda yang "dibersihkan" - selalu seperti:555123456.
Karena ini adalah bidang PERSISTED, Anda juga tidak dikenakan penalti kinerja saat membuat kueri - nilainya dibuat dan disimpan di tabel Anda, dan tersedia sebagai kolom normal.
Tentang ini, Anda sekarang dapat melakukan kueri dengan cukup mudah.
Marc