sql >> Database teknologi >  >> RDS >> PostgreSQL

Konverter CamelCase til snake_case

Følgende regex tilføjer en understregning foran hvert stort bogstav:

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

Da det resulterer i en understregning i begyndelsen, skal dette fjernes ved hjælp af trim()

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

Følgende forespørgsel:

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;
 

returnerer:

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

  1. Tjek streng af tegn er en gyldig dato eller ej

  2. Tildel en eksisterende bruger til mysql-databaser

  3. Find forbindelserne mellem databasemailkonti og databaseprincipper i SQL Server (T-SQL)

  4. Du skal blot konvertere fra mysql til mysqli