Измените значения в столбце с PascalCase на snake_case с помощью SQL

У меня есть таблица в снежинке, которая выглядит так:

 --------------------
|      fieldname     |
 --------------------
|thisIsTestOne       |
|thisIsTestTwo       |
|this_test           |
 --------------------

Мне нужно преобразовать значения PascalCase в столбце в snake_case. Примечание: я хочу преобразовать их в snake_case, только если они PascalCase. Результат должен выглядеть так:

 -------------------- ---------------------
|      fieldname     |    newfieldname     |
 -------------------- ---------------------
|thisIsTestOne       |this_is_test_one     |
|thisIsTestTwo       |this_is_test_two     |
|this_test           |this_test            |
 -------------------- ---------------------

1 ответ

Решение

Вы должны уметь использовать REGEXP_REPLACE для вставки символа подчеркивания между символом нижнего регистра, за которым следует символ верхнего регистра, а затем LOWER преобразовать в нижний регистр, т.е.

SELECT LOWER(REGEXP_REPLACE(fieldname, '([a-z])([A-Z])', '\\1_\\2'))
FROM yourtable
Другие вопросы по тегам