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

कैमलकेस को स्नेक_केस में बदलें

निम्नलिखित रेगेक्स प्रत्येक अपरकेस अक्षर के सामने एक अंडरस्कोर जोड़ता है:

regexp_replace(name, '([A-Z])','_\1', 'g'))

चूंकि इसका परिणाम शुरुआत में अंडरस्कोर पर होता है, इसलिए इसे trim() . का उपयोग करके हटाया जाना चाहिए

trim(both '_' from lower(regexp_replace(name, '([A-Z])','_\1', 'g')))

निम्नलिखित प्रश्न:

with names (name) as (
  values ('StackOverflow'), 
         ('Foo'), 
         ('FooBar'), 
         ('foobar'), 
         ('StackOverflowCom')
)
select name, trim(both '_' from lower(regexp_replace(name, '([A-Z])','_\1', 'g'))) as new_name
from names;

रिटर्न:

name             | new_name          
-----------------+-------------------
StackOverflow    | stack_overflow    
Foo              | foo               
FooBar           | foo_bar           
foobar           | foobar            
StackOverflowCom | stack_overflow_com


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एडब्ल्यूएस और एज़्योर पर पूरी तरह से प्रबंधित पोस्टग्रेएसक्यूएल होस्टिंग लिगेसी माइग्रेशन के लिए समय पर लॉन्च होती है

  2. पुनरावर्ती SQL कथन (Postgresql) - सरलीकृत संस्करण

  3. लेन-देन में त्रुटि के बाद रोलबैक

  4. पोस्टग्रेज में pg_trgm . के साथ समानता कार्य

  5. PostgreSQL क्वेरी में अलग-अलग टुपल्स कैसे ऑर्डर करें