Прошу помощи , есть выборка результатирующая которая выводит поле fio
в FIO выводит Иванов Олег Ярославович из этого ФИО мне нужно выводить ":Иванов О"
нагуглил решение
SELECT CONCAT(':', SUBSTRING_INDEX(`fio`, ' ', 1), ' ', LEFT(SUBSTRING_INDEX(`fio`, ' ', -2), 1)) AS `author`
FROM user
и оно вроде рабочее но если фио не полное к примеру Иванов Олег то моя конструкция уже работает не корректно и выводит "Иванов И"
Можно сделать что-то вроде:
select left(fio,charindex(' ',fio) + 1) from user
Или еще можно так)
select string_agg(case when x.row = 2 then left(x.val,1) else x.val end,' ')
from user
cross apply (select row_number() over(order by fio) row,
val = value from string_split(fio,' ')) as x
where x.row in(1,2)
group by fio
Продвижение своими сайтами как стратегия роста и независимости