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

समान स्ट्रिंग वाले sql रिकॉर्ड खोजें

यदि आप वास्तव में समानता को ठीक उसी तरीके से परिभाषित करना चाहते हैं जिसे आपने अपने प्रश्न में तैयार किया है, तो आपको - जैसा कि आप कहते हैं - लेवेनस्टीन दूरी गणना को लागू करना होगा। या तो डेटा रीडर द्वारा पुनर्प्राप्त की गई प्रत्येक पंक्ति पर या SQL सर्वर फ़ंक्शन के रूप में गणना किए गए कोड में।

बताई गई समस्या वास्तव में पहली नज़र में दिखने की तुलना में अधिक कठिन है, क्योंकि आप यह जानने का अनुमान नहीं लगा सकते कि परस्पर साझा क्या है दो तारों के बीच के तत्व हो सकते हैं।

तो लेवेनस्टीन दूरी के अतिरिक्त आप शायद लगातार वर्णों की न्यूनतम संख्या भी निर्दिष्ट करना चाहते हैं जिन्हें वास्तव में मिलान करना है (पर्याप्त समानता के निष्कर्ष के लिए)।

संक्षेप में:यह अत्यधिक जटिल और समय लेने वाला/धीमा तरीका लगता है।

दिलचस्प बात यह है कि SQL Server 2008 में आपके पास DIFFERENCE फ़ंक्शन है जो हो सकता है कुछ इस तरह के लिए इस्तेमाल किया जा सकता है।

यह दो तारों के ध्वन्यात्मक मूल्य का मूल्यांकन करता है और अंतर की गणना करता है। मुझे यकीन नहीं है कि आप इसे मूवी टाइटल जैसे बहु-शब्द अभिव्यक्तियों के लिए ठीक से काम करेंगे क्योंकि यह रिक्त स्थान या संख्याओं से अच्छी तरह से निपटता नहीं है और स्ट्रिंग की शुरुआत पर बहुत अधिक जोर देता है, लेकिन यह अभी भी एक दिलचस्प है जागरूक होने की भविष्यवाणी करें।

अगर आप असल में हैं वर्णन करने का प्रयास किसी प्रकार की खोज सुविधा है, तो आपको SQL Server 2008 की पूर्ण पाठ खोज क्षमताओं पर गौर करना चाहिए। यह अंतर्निहित थिसॉरस समर्थन, फैंसी SQL विधेय और "सर्वश्रेष्ठ मिलान" के लिए एक रैंकिंग तंत्र प्रदान करता है।

संपादित करें:यदि आप डुप्लीकेट को खत्म करना चाहते हैं तो शायद आप एसएसआईएस फजी लुकअप और फजी ग्रुप ट्रांसफॉर्मेशन देख सकते हैं। मैंने खुद यह कोशिश नहीं की है, लेकिन यह एक आशाजनक लीड की तरह दिखता है।

EDIT2:यदि आप एसएसआईएस में खुदाई नहीं करना चाहते हैं और अभी भी लेवेनस्टीन दूरी एल्गोरिदम के प्रदर्शन के साथ संघर्ष करना चाहते हैं, तो आप शायद इस एल्गोरिदम को आजमा सकते हैं जो कम जटिल प्रतीत होता है।



  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 सर्वर में 'डेटाटाइम' को 'डेटाटाइम 2' में बदलें (T-SQL उदाहरण)

  2. SQL सर्वर (T-SQL उदाहरण) में 'time' को 'smalldatetime' में बदलें

  3. SQL सर्वर प्रतीक्षा ईवेंट -2

  4. SQL सर्वर में कनेक्शन के लिए संयोजन कैसे सेट करें?

  5. SQL सर्वर में एक विदेशी कुंजी बाधा को कैसे अक्षम करें (T-SQL उदाहरण)