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

PostgreSQL में केवल अल्फ़ान्यूमेरिक वर्ण वाली पंक्तियों को वापस करने के 2 तरीके

नीचे उन पंक्तियों को वापस करने की दो विधियाँ हैं जिनमें PostgreSQL में केवल अल्फ़ान्यूमेरिक वर्ण हैं।

अक्षरांकीय वर्ण, वर्णानुक्रमिक वर्ण और संख्यात्मक वर्ण होते हैं।

नमूना डेटा

हम अपने उदाहरणों के लिए निम्नलिखित डेटा का उपयोग करेंगे:

SELECT c1 FROM t1; 

परिणाम:

 म्यूजिक लाइव म्यूजिक कैफे डेल मार्च 100 कैफे [email protected] 1 + 1 () [email protected]#&()–[{}]:;',?/* `~$^+=<>“$1.50 प्लेयर 456 007 नल é é 123 123

विकल्प 1:[:alnum:] से तुलना करें

हम PostgreSQL के ~ . का उपयोग कर सकते हैं मान की तुलना रेगुलर एक्सप्रेशन से करने के लिए ऑपरेटर.

PostgreSQL की नियमित अभिव्यक्ति क्षमता में POSIX वर्ण वर्गों के लिए समर्थन शामिल है। इसलिए, हम [:alnum:] . का उपयोग कर सकते हैं अल्फ़ान्यूमेरिक वर्णों वाली पंक्तियों को खोजने के लिए हमारे नियमित अभिव्यक्तियों में POSIX वर्ण वर्ग।

SELECT c1 FROM t1 
WHERE c1 ~ '^[[:alnum:]]+$'; 

परिणाम:

 संगीत कैफे 007 और 

यह केवल वे मान देता है जिनमें केवल अल्फान्यूमेरिक वर्ण होते हैं। यदि किसी पंक्ति में अल्फ़ान्यूमेरिक और गैर-अल्फ़ान्यूमेरिक दोनों वर्ण हैं, तो उसे वापस नहीं किया जाता है।

ध्यान दें कि स्पेस कैरेक्टर को गैर-अल्फ़ान्यूमेरिक माना जाता है, और इसलिए यदि हम रिक्त स्थान शामिल करना चाहते हैं, तो हम यह कर सकते हैं:

SELECT c1 FROM t1 
WHERE c1 ~ '^[[:alnum:] ]+$'; 

परिणाम:

 म्यूज़िक लाइव म्यूज़िक कैफ़े कैफ़े डेल मार्च 100 कैफ़े प्लेयर 456 007 é é 123 123

उन सभी पंक्तियों को वापस करने के लिए जिनमें शामिल हैं अल्फ़ान्यूमेरिक वर्ण (भले ही पंक्ति में गैर-अल्फ़ान्यूमेरिक वर्ण भी हों), हम यह कर सकते हैं:

SELECT c1 FROM t1 
WHERE c1 ~ '[[:alnum:]]'; 

परिणाम:

 म्यूजिक लाइव म्यूजिक कैफे डेल मार्च 100 कैफे 

विकल्प 2:वर्णों की श्रेणी निर्दिष्ट करें

इसे करने का दूसरा तरीका है रेगुलर एक्सप्रेशन में वर्णों की एक श्रेणी निर्दिष्ट करना।

उदाहरण:

SELECT c1 FROM t1
WHERE c1 ~ '^[A-Za-z0-9]+$'; 

परिणाम:

 संगीत 007

आप देखेंगे कि यह हमारे पहले उदाहरण की तुलना में कम पंक्तियाँ लौटाता है। ऐसा इसलिए है क्योंकि मैंने é . शामिल नहीं किया था , É , या ø मेरी सीमा में वर्ण, और इसलिए उन वर्णों वाली किसी भी पंक्ति को आउटपुट से बाहर रखा गया है।

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

हालांकि, इस सीमा को ध्यान में रखते हुए, हम इस तरह के रिक्त स्थान शामिल कर सकते हैं:

SELECT c1 FROM t1 
WHERE c1 ~ '^[A-Za-z0-9 ]+$'; 

परिणाम:

 म्यूजिक लाइव म्यूजिक प्लेयर 456 007

और हम निम्नलिखित का उपयोग उन सभी पंक्तियों को शामिल करने के लिए कर सकते हैं जिनमें शामिल हैं हमारी श्रेणी के वर्ण (भले ही उनमें इस श्रेणी के बाहर के वर्ण भी हों):

SELECT c1 FROM t1 
WHERE c1 ~ '[A-Za-z0-9]'; 

परिणाम:

 म्यूज़िक लाइव म्यूज़िक कैफ़े कैफ़े डेल मार्च 100 कैफ़े [email protected] 1 + 1 $1.50 प्लेयर 456 007 और 123 123


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अद्यतन करने योग्य दृश्यों के लिए CHECK क्लॉज

  2. पोस्टग्रेएसक्यूएल ऑटोइन्क्रिमेंट

  3. पोस्टग्रेज़ दिनांक अतिव्यापी बाधा

  4. PostgreSQL में डेटाबेस तक पहुंच कैसे सीमित करें

  5. लूप के लिए पोस्टग्रेज