Как возвращать только часть строки PostgreSQL?

Есть таблица

|id|name             |
| 1|Denis Denisov    |
| 2|Andew Andrienko  |
| 3|Nikolai Andrienko|
| 4|Andrew Nikolaev  |

Не могу понять как вернуть только имена людей, у которых фамилия Andrienko.
Сейчас только есть вариант с выводом всей ячейки, но как возвращать только имена?

SELECT *
FROM table
WHERE name LIKE '% Andrienko';

Ответы (4 шт):

Автор решения: Pekor

Либо сделать 2 столбца - один для имени, другой для фамилии; тогда запрос будет что-то типо SELECT name FROM table WHERE surname = 'Andrienko';

Либо - https://docs.microsoft.com/ru-ru/sql/t-sql/functions/string-split-transact-sql?view=sql-server-ver15 (разбиваешь значение столбца по пробелу и вытаскиваешь первый элемент - это и будет имя)

→ Ссылка
Автор решения: Konst

можно использовать CHARINDEX() для поиска пробела:

select id, left([name],CHARINDEX(' ', [name], 0) - 1) as firstname from table WHERE [name] LIKE '% Andrienko'
→ Ссылка
Автор решения: Проста Miha

Вот что-то такое я могу предложить

SELECT SUBSTR(name, 1, INSTR(name, ' ') - 1) AS name 
FROM table 
WHERE name LIKE '% Andrienko';
→ Ссылка
Автор решения: whatgenius
SELECT substring(name, 1, position(' ' in name) - 1) FROM tickets WHERE name LIKE '% Andrienko';
→ Ссылка