मैं टी-एसक्यूएल में प्रतिशत चिह्न से कैसे बचूँ?


187

इस प्रश्न का उत्तर भी है , लेकिन इसमें विशेष रूप से DB2 का उल्लेख है।

मैं एक स्ट्रिंग का उपयोग कैसे खोज सकता हूं LIKEजो पहले से ही इसमें एक प्रतिशत %प्रतीक है? LIKEऑपरेटर का उपयोग करता है %प्रतीकों वाइल्डकार्ड सूचित करने के लिए।

जवाबों:


284

कोष्ठक का प्रयोग करें। तो 75% की तलाश

WHERE MyCol LIKE '%75[%]%'

यह ESCAPE की तुलना में सरल और अधिकांश RDBMSes के लिए सामान्य है।


2
यह भी ध्यान दें कि आपको अन्य निर्माणों में एक प्रतिशत प्रतीक से बचने की ज़रूरत नहीं है जैसे कि उपयोगकर्ता फ़ंक्शन, कॉन्फैक्शन, इत्यादि
ब्रॉन डेविस


2
आप अंडरस्कोर वाइल्डकार्ड चरित्र से भी बच सकते हैं [_]:। आप खुले वर्ग कोष्ठक से कैसे बचेंगे? इस तरह [[]:। sqlserver2000.datports.aspfaq.com/…
Csaba Toth

ESCAPE क्लॉज का उपयोग करना MS के मस्तिष्क-क्षतिग्रस्त उद्धरण तंत्र की तुलना में समझना आसान है।
Suncat2000

51

आप ESCAPEकीवर्ड का उपयोग कर सकते हैं LIKE%स्ट्रिंग में मौजूदा संकेतों में से प्रत्येक में वांछित चरित्र (जैसे '!') को प्रीपेंड करें और फिर ESCAPE '!'क्वेरी के अंत में (या अपनी पसंद का चरित्र) जोड़ें ।

उदाहरण के लिए:

SELECT *
FROM prices
WHERE discount LIKE '%80!% off%'
ESCAPE '!'

यह 80 और (वाइल्डकार्ड) नहीं खोज करने के लिए स्ट्रिंग के वास्तविक भाग के रूप में डेटाबेस को 80% का इलाज करेगा।

MSDN डॉक्स के लिए LIKE



हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.