मैं ओरेकल में दो तालिकाओं में शामिल होने की कोशिश कर रहा हूँ:

तालिका एक

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
4
Rqomey 22 सितंबर 2017, 13:24

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)
2
Dmitry Bychenko 22 सितंबर 2017, 17:54

कैसा रहेगा:

select ...
  from table1
       join table2
            on substr(table1.bugz_url, -7) = to_char(table2.bug_id);
4
Tony Andrews 22 सितंबर 2017, 13:28