АКО можете да промените таблицата (ако приемем, че е SQL Server 2005 и нагоре), можете да добавите изчислена колона към вашата таблица и да я запазите. Тази колона може да съдържа "почистено" представяне на вашето поле "phonenumber".
Нещо подобно:
create function dbo.CleanPhone(@phone varchar(100))
returns varchar(100)
with schemabinding
as begin
return
replace(replace(replace(replace(replace(replace(@phone, ' ', ''),
'-', ''), '(', ''), ')', ''), '-', ''), '+', '')
end
и след това:
alter table (yourtable)
add cleanedPhone as dbo.CleanPhone(Phone) persisted
Сега колоната ви „CleanedPhone“ винаги ще съдържа „почистена“ версия на вашия телефонен номер – винаги нещо като:555123456.
Тъй като това е ПОСТОЯННО поле, вие също не получавате понижаване на производителността при заявка - стойността се създава и съхранява във вашата таблица и е достъпна като нормална колона.
За това вече можете да правите заявки доста лесно.
Марк