sql - एसक्यूएल- एक स्ट्रिंग के लिए खोज करते समय केस अनदेखा करें



sql-server case-insensitive (3)


मेरे पास एक टेबल में निम्न डेटा है
PriceOrderShipped
PriceOrderShippedInbound
PriceOrderShippedOutbound

एसक्यूएल में मुझे एक क्वेरी लिखनी है जो एक तालिका में एक स्ट्रिंग की खोज करता है। एक स्ट्रिंग की खोज करते समय इसे मामले को अनदेखा करना चाहिए। नीचे उल्लिखित SQL क्वेरी के लिए

SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME LIKE '%PriceOrder%' 

उपरोक्त सभी डेटा देता है, जबकि

SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME LIKE '%Priceorder%' 

नहीं देता

उदाहरण के लिए। जब मैं 'प्राइसऑर्डर' या 'प्राइस ऑर्डर' की खोज करता हूं तो यह काम करता है लेकिन 'प्राइसऑर्डर' या 'प्राइसऑर्डर' काम नहीं करता है। मैंने COLLATE का उपयोग करके नीचे दी गई क्वेरी के साथ प्रयास किया है, लेकिन यह काम नहीं कर रहा है। मुझे बताएं कि मैं गलत कहां जा रहा हूं।

SELECT DISTINCT COL_NAME FROM myTable WHERE 
COL_NAME COLLATE latin1_general_cs LIKE '%Priceorder%'

Answer #1

आपको अपने collation के रूप में शायद SQL_Latin1_General_Cp1_CI_AS_KI_WI उपयोग करना चाहिए। जो आप अपने प्रश्न में निर्दिष्ट करते हैं वह अनजाने में मामला संवेदनशील है।

आप here collations की एक सूची देख सकते हैं।


Answer #2

इस तरह कुछ उपयोग करें -

SELECT DISTINCT COL_NAME FROM myTable WHERE UPPER(COL_NAME) LIKE UPPER('%PriceOrder%')

या

SELECT DISTINCT COL_NAME FROM myTable WHERE LOWER(COL_NAME) LIKE LOWER('%PriceOrder%')

Answer #3

मैं ilike के लिए उपयोग करते हैं।

इस प्रकार सं.

SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME iLIKE '%Priceorder%'

Postgresql में।






ignore-case