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

LIKE फ़िल्टर में अंडरस्कोर वर्ण का उपयोग करने से मुझे सभी परिणाम क्यों मिलते हैं?

अपना WHERE संशोधित करें इस तरह की स्थिति:

WHERE mycolumn LIKE '%\_%' ESCAPE '\'

यह उन तरीकों में से एक है जिसमें Oracle भागने वाले पात्रों का समर्थन करता है। यहां आप एस्केप कैरेक्टर को escape . के साथ परिभाषित करते हैं खोजशब्द। विवरण के लिए Oracle डॉक्स पर यह लिंक देखें।

'_' और '%' वाइल्डकार्ड एक LIKE . में होते हैं SQL में ऑपरेटेड स्टेटमेंट।

_ चरित्र (कोई भी) एक एकल चरित्र की उपस्थिति की तलाश करता है। अगर आप columnName LIKE '_abc' . से सर्च करते हैं , यह आपको 'aabc' . वाली पंक्तियों के साथ परिणाम देगा , 'xabc' , '1abc' , '#abc' लेकिन नहीं 'abc' , 'abcc' , 'xabcd' और इसी तरह।

'%' वर्ण का उपयोग 0 या अधिक वर्णों के मिलान के लिए किया जाता है। यानी अगर आप columnName LIKE '%abc' . से सर्च करते हैं , यह आपको 'abc' . होने के साथ परिणाम देगा , 'aabc' , 'xyzabc' और इसी तरह, लेकिन कोई 'xyzabcd' , 'xabcdd' और कोई अन्य स्ट्रिंग जो 'abc' . के साथ समाप्त नहीं होती है ।

आपके मामले में आपने '%_%' . द्वारा खोजा है . यह उस कॉलम के साथ सभी पंक्तियों को एक या अधिक वर्ण देगा, जिसका अर्थ है कि कोई भी वर्ण, इसके मूल्य के रूप में। यही कारण है कि _ . न होने पर भी आपको सभी पंक्तियां मिल रही हैं आपके कॉलम मानों में।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आशावादी संगामिति:IsConcurrencyToken और RowVersion

  2. एसक्यूएल सर्वर (टी-एसक्यूएल) में 'डेट' को 'स्मॉलडेटटाइम' में बदलने के उदाहरण

  3. एसक्यूएल सर्वर में खंड सीमा में

  4. T-SQL का उपयोग करके SQL सर्वर में एक विदेशी कुंजी का नाम बदलें

  5. SQL सर्वर लिंक्ड सर्वर उदाहरण क्वेरी