initcap(trim(split_part(First_name, ',', 1))) AS Imya,
initcap(trim(split_part(First_name, ',', 2))) AS Otchestvo
Для преобразования первой буквы к верхнему регистру, а остальных к нижнему в PostgreSQL есть функция initcap. А для того, чтобы убрать возможные пробелы на концах, есть trim. SELECT
INITCAP(LOWER(TRIM(SPLIT_PART("Firs_name", ', ', 2)))) AS first_name,
INITCAP(LOWER(TRIM(SPLIT_PART("Firs_name", ', ', 1)))) AS last_name
FROM public."Тексты";
Напишите запрос SQL , который разделит строку с именем и фамилией пользователя вида «Smith, John» на два отдельных столбца и приведет к верхнему регистру первую букву имени и фамилии, оставив остальное в нижнем регистре.
1) Вариант получился такой:
SELECT *,
split_part("Firs_name", ', ', 1) AS Imya,
split_part("Firs_name", ', ', 2) AS Otchestvo
FROM public."Тексты"
Но тут, не знаю что прописывать для верхнего регистра...да и потом скорее всего нужны регулярные выражения)
2) Вариант такой:
SELECT*,
substring("Firs_name", '^\S+' ) f,
substring("Firs_name", '\S+$' ) s
FROM public."Тексты"
Тут с первым словом вылезает запятая, как её убрать?
И что написать для верхнего регистра?
Заранее благодарен)