यदि आप तालिका को बदल सकते हैं (मान लें कि यह SQL Server 2005 है) और ऊपर), आप अपनी तालिका में एक गणना कॉलम जोड़ सकते हैं, और इसे जारी रख सकते हैं। इस कॉलम में आपके "फ़ोननंबर" फ़ील्ड का "क्लीन अप" प्रतिनिधित्व हो सकता है।
कुछ इस तरह:
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।
चूंकि यह एक स्थायी फ़ील्ड है, इसलिए क्वेरी करते समय आपको प्रदर्शन दंड नहीं लगता है, या तो - मान आपकी तालिका में बनाया और संग्रहीत किया जाता है, और एक सामान्य कॉलम के रूप में उपलब्ध होता है।
इस पर अब आप काफी आसानी से पूछताछ कर सकते हैं।
मार्क