PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Chuyển đổi CamelCase thành solid_case

Regex sau đây thêm dấu gạch dưới trước mỗi chữ cái viết hoa:

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

Vì điều đó dẫn đến dấu gạch dưới ở đầu, điều này cần được xóa bằng cách sử dụng trim()

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

Truy vấn sau:

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;

lợi nhuận:

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. heroku pg:kéo mật khẩu xác thực không thành công

  2. INSERT [...] ON CONFLICT có thể được sử dụng cho các vi phạm khóa ngoại không?

  3. Tạo cơ sở dữ liệu PostgreSQL nhanh chóng bằng Hibernate ngay cả khi DB không tồn tại

  4. khởi động postgresql và pgadmin trong windows mà không cần cài đặt

  5. So sánh các công cụ cân bằng tải cho PostgreSQL