Измените значения в столбце с 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