सभी,
मैं एक लंबी स्ट्रिंग के भीतर एक वाक्यांश ("अवलोकित TRD3 Ufls" खोजने की कोशिश कर रहा हूं, और मुझे परेशानी हो रही है। कभी-कभी उप स्ट्रिंग शुरुआत में, कभी बीच में और कभी-कभी अंत में हो सकती है। मैं कोशिश कर रहा हूं कुछ इस तरह
MAX(CASE WHEN REGEXP_LIKE(B.shipment,'Observed TRD3 Ufls','i') THEN 1 ELSE 0 END) OVER (PARTITION BY d.Status) AS Tag
कभी-कभी देखा जा सकता है, इसलिए मुझे दोनों को प्राप्त करने में सक्षम होने की आवश्यकता है, और अंत में इसे असंवेदनशील होने की आवश्यकता है।
मेरे द्वारा समीक्षा किया गया प्रत्येक परिणाम हमेशा 1 के बजाय 0 होता है। किसी भी मदद की सराहना की जाएगी!
2 जवाब
REGEXP
के बजाय, आप बस इस प्रकार का उपयोग कर सकते हैं:
upper(B.shipment) LIKE '%OBSERVED TRD3 UFLS%'
कृपया ध्यान दें कि यह मेरे लिए ठीक काम कर रहा है, भले ही मिलान स्ट्रिंग कॉलम के प्रारंभ, मध्य या अंत में हो
मुझे ऐसा लगता है कि आपका वर्तमान रेगेक्स तर्क where
खंड में प्रकट होना चाहिए:
SELECT *
FROM yourTable
WHERE REGEXP_LIKE(shipment, 'Observed TRD3 Ufls', 'i');
REGEXP_LIKE
को आपका वर्तमान कॉल पहले से ही टेक्स्ट के लिए केस असंवेदनशील खोज कर रहा होगा। ध्यान दें कि यदि आप टेक्स्ट के अंदर सटीक टेक्स्ट Observed TRD3 Ufls
खोजना चाहते हैं, तो आपको शब्द सीमाओं का उपयोग करना चाहिए:
SELECT *
FROM yourTable
WHERE REGEXP_LIKE(shipment, '(^|\s)Observed TRD3 Ufls(\s|$)', 'i');
यह प्रारंभ, मध्य या अंत में पाठ से मेल खाएगा।
संबंधित सवाल
नए सवाल
sql
संरचित क्वेरी भाषा (एसक्यूएल) डेटाबेस को क्वेरी करने के लिए एक भाषा है। प्रश्नों में कोड उदाहरण, तालिका संरचना, नमूना डेटा और DBMS कार्यान्वयन के लिए एक टैग (जैसे MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, आदि) का उपयोग किया जाना चाहिए। यदि आपका प्रश्न केवल एक विशिष्ट DBMS (विशिष्ट एक्सटेंशन / सुविधाओं का उपयोग करता है) से संबंधित है, तो इसके बजाय उस DBMS के टैग का उपयोग करें। एसक्यूएल के साथ टैग किए गए सवालों के जवाब में आईएसओ / आईईसी मानक एसक्यूएल का उपयोग करना चाहिए।