Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL - क्वेरी फ़ोननंबर जो असंगत रूप से संग्रहीत हैं

यदि आप तालिका को बदल सकते हैं (मान लें कि यह 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।

चूंकि यह एक स्थायी फ़ील्ड है, इसलिए क्वेरी करते समय आपको प्रदर्शन दंड नहीं लगता है, या तो - मान आपकी तालिका में बनाया और संग्रहीत किया जाता है, और एक सामान्य कॉलम के रूप में उपलब्ध होता है।

इस पर अब आप काफी आसानी से पूछताछ कर सकते हैं।

मार्क



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में NOCHECK के साथ सभी विदेशी कुंजियों को कैसे सूचीबद्ध करें

  2. SQL 2008 लिंक्ड सर्वर एक्सेस अस्वीकृत त्रुटि का लाभ

  3. TSQL INSERT INTO में डेटटाइम में मिलीसेकंड जोड़ना

  4. मैं तालिका में डुप्लिकेट पंक्तियों को कैसे हटा सकता हूं

  5. महीने की शुरुआत से लेकर आज की तारीख तक के रिकॉर्ड चुनें