PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

मूल्यांकन किए गए अभिव्यक्ति के साथ कैप्चर किए गए समूह को कैसे बदलें (समूह पर कब्जा करने के लिए एक पूर्णांक मान जोड़ना)

आप इसे अकेले रेगेक्सपी में नहीं कर सकते क्योंकि रेगेक्सपी कैप्चर किए गए समूहों पर गणित का समर्थन नहीं करता है, भले ही वे सभी संख्यात्मक वर्ण हों। तो आपको उस समूह को प्राप्त करना होगा जो मंजिल संख्या का प्रतिनिधित्व करता है, गणित करें और इसे वापस इसमें विभाजित करें:

SELECT regexp_replace('B12F34', 'B(\d+)F(\d+)', 'Building \1 - Floor ') ||
       ((regexp_matches('B12F34', '[0-9]+$'))[1]::int + 10)::text;

दो रेगेक्सपी कॉल के कारण बहुत कुशल नहीं है। एक अन्य विकल्प यह है कि उप-क्वेरी में केवल दो नंबर प्राप्त करें और मुख्य क्वेरी में स्ट्रिंग को इकट्ठा करें:

SELECT format('Building %L - Floor %L', m.num[1], (m.num[2])::int + 10)
FROM (
  SELECT regexp_matches('B12F34', '[0-9]+', 'g') AS num) m;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हेरोकू का उपयोग करके django_migrations संबंध के लिए अनुमति अस्वीकार कर दी गई है

  2. Npgsql 4.0 पैरामीटर और शून्य मान

  3. PostgreSQL डेटाबेस में सभी दृश्यों को कैसे सूचीबद्ध करें

  4. PostgreSQL सुरक्षा_बैरियर दृश्य कैसे काम करते हैं?

  5. ClusterControl के साथ PostgreSQL शेयरिंग को कैसे कॉन्फ़िगर करें