मैं ओरेकल में दो तालिकाओं में शामिल होने की कोशिश कर रहा हूँ:
तालिका एक
Jira ID|bugz url(string)
-------|---------
1234 |http-url-897654
1235 |http-url-158974
1236 |http-url-158975\nhttp-url-158972
तालिका 2
BUG_ID(int)|Stuff
-------|---------
897654 |Stuff
158974 |Stuff
158975 |Stuff
मैं सर्वश्रेष्ठ प्रयास मैच का उपयोग करके तालिका 2 से तालिका 1 में शामिल होना चाहता हूं। BUG_ID हमेशा 7 अंकीय अंक होगा और तालिका 1 में URL एक स्ट्रिंग है, लेकिन मुझे केवल "वैध" स्ट्रिंग्स का उपयोग करने में प्रसन्नता हो रही है, जो एक URL है:
https://example.com/show_bug.cgi?id=1958615 <-- this is the BUG_ID
2 जवाब
यदि आप url की तलाश में हैं, तो कहें
http(s): ... ?id=7_DIGITS_BUG_NUMBER
आप रेगुलर एक्सप्रेशन, regexp_substr आज़मा सकते हैं Oracle के मामले में:
select ...
from table1 join table2
on regexp_substr(table1.bugz_url, '^https?:.*\?id=([0-9]{7})$', 1, 1, null, 1) =
to_char(table2.bug_id)
कैसा रहेगा:
select ...
from table1
join table2
on substr(table1.bugz_url, -7) = to_char(table2.bug_id);
संबंधित सवाल
नए सवाल
sql
संरचित क्वेरी भाषा (एसक्यूएल) डेटाबेस को क्वेरी करने के लिए एक भाषा है। प्रश्नों में कोड उदाहरण, तालिका संरचना, नमूना डेटा और DBMS कार्यान्वयन के लिए एक टैग (जैसे MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, आदि) का उपयोग किया जाना चाहिए। यदि आपका प्रश्न केवल एक विशिष्ट DBMS (विशिष्ट एक्सटेंशन / सुविधाओं का उपयोग करता है) से संबंधित है, तो इसके बजाय उस DBMS के टैग का उपयोग करें। एसक्यूएल के साथ टैग किए गए सवालों के जवाब में आईएसओ / आईईसी मानक एसक्यूएल का उपयोग करना चाहिए।