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

केस और विशेष वर्णों को अनदेखा करते हुए दो कॉलम में संभावित डुप्लिकेट खोजें

lower() कोड> / upper()

वर्णों को या तो निचले या ऊपरी मामले में मोड़ने के लिए इनमें से किसी एक का उपयोग करें। विशेष वर्ण प्रभावित नहीं होते:

SELECT count(*), lower(name), number
FROM   tbl
GROUP  BY lower(name), number
HAVING count(*) > 1;

unaccent() कोड>

यदि आप वास्तव में विशेषक चिह्नों को अनदेखा करना चाहते हैं, जैसे कि आपकी टिप्पणियों का अर्थ है, अतिरिक्त मॉड्यूल स्थापित करें unaccent , जो एक टेक्स्ट सर्च डिक्शनरी प्रदान करता है जो एक्सेंट को हटाता है और सामान्य उद्देश्य फ़ंक्शन unaccent() को भी हटाता है। :

CREATE EXTENSION unaccent;

इसे बहुत आसान बनाता है:

SELECT lower(unaccent('Büßercafé'));

परिणाम:

busercafe

यह गैर-अक्षरों को पट्टी नहीं करता है। जोड़ें regexp_replace() जैसे @Craig ने इसके लिए उल्लेख किया है:

SELECT lower(unaccent(regexp_replace('$s^o&f!t Büßercafé', '\W', '', 'g') ));

परिणाम:

softbusercafe

आप उसके ऊपर एक कार्यात्मक अनुक्रमणिका भी बना सकते हैं:



  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. MySQL/पोस्टग्रेस क्वेरी 5 मिनट अंतराल डेटा

  3. आईडी के आधार पर लाखों पंक्तियों को हटाने का सबसे अच्छा तरीका

  4. जावा में encode(<columnName>, 'escape') PostgreSQL समतुल्य क्या है?

  5. Django कस्टम अद्वितीय एक साथ बाधा