PostgreSQL. Разъединить 2 слова (Имя, Фамилия) на 2 столбца, использую substring
Помогите, пожалуйста. Нужно разъединить 2 слова (Имя, Фамилия) на 2 столбца, использую substring. Моя попытка:
select carid,
substring(driverfullname from position (driverfullname in ' ')) || ' ' || left (substring (driverfullname from 1 for position (driverfullname in ' ')), 1) as first_name,
substring(driverfullname from position (' ' in driverfullname)) || ' ' || right (substring (driverfullname from 1 for position (driverfullname in ' ')), 1) as last_name
from car;
Ответы (2 шт):
Автор решения: Akina
→ Ссылка
WITH
sourcedata AS (
SELECT 'Василий Пупкин' AS value
)
SELECT substring ( value FROM '^\S*' ) AS firstname,
substring ( value FROM '\S*$' ) AS lastname
FROM sourcedata
| firstname | lastname |
|---|---|
| Василий | Пупкин |
Автор решения: Эдуард Артюх
→ Ссылка
select
carid,
split_part(driverfullname ,' ', 1) as first_name,
split_part(driverfullname ,' ', 2) as last_name
from car;
Пример:
SELECT
split_part('Джеффри Лесли Крэнстон', ' ', 1) as first_name,
split_part('Джеффри Лесли Крэнстон', ' ', 2) as middle_name,
split_part('Джеффри Лесли Крэнстон', ' ', 3) as last_name
first_name|middle_name|last_name|
----------+-----------+---------+
Джеффри |Лесли |Крэнстон |
Или можно так
SELECT
split_part('Джеффри Лесли Крэнстон', ' ', 1) || ' ' || split_part('Джеффри Лесли Крэнстон', ' ', 2) as name,
split_part('Джеффри Лесли Крэнстон', ' ', 3) as last_name
name |last_name|
-------------+---------+
Джеффри Лесли|Крэнстон |
