سؤال

أقول لدي رابط طويل

xyz = 'www.google.com/xyz?para1=value1&para2=value2&para3=value3....'

أحاول الحصول على 'بارا 1' من هذا الرابط الطويل

لذلك ، لدي

select TRIM(Leading '?' from Substring(xyz from '%#"?%=#"%' for '#'))

الجواب الذي أحصل عليه لهذا البيان بالذات هو

para1=value1&para2=value2&para3=

كيف يمكنني الحصول على مجرد 'بارا 1' باستخدام بيان حدد أعلاه (أو أي طريقة أخرى مماثلة?)

أنا باستخدام غرينبلوم (كما هو مذكور في عنوان الموضوع)

هل كانت مفيدة؟

المحلول

منذ لديك على ما يبدو regexp_ وظائف (لم أكن أعتقد غرينبلوم دعمهم) استخدام:

select (regexp_matches(
   'www.google.com/xyz?para1=value1&para2=value2&para3=value3....',
   '\?([^&]+)='
   ))[1];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top