powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как вывести только Имя из столбца ФИО
22 сообщений из 22, страница 1 из 1
Как вывести только Имя из столбца ФИО
    #39827714
AlexandrAVG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Имеется столбец ФИО "Иванов Иван Иваныч". Как мне вытащить только имя?

Пробовал через
Код: plsql
1.
SUBSTRING

и
Код: plsql
1.
CHARINDEX

вывести нужные значения, но проблема в том, что длина фамилии и имени разные.

Код: plsql
1.
2.
3.
4.
5.
6.
SELECT	SUBSTRING(aff_usr.usr_n, CHARINDEX(' ', aff_usr.usr_n)+1
LEN (aff_usr.usr_n)
 	FROM incident 
	LEFT OUTER JOIN usr aff_usr 
		ON aff_usr.usr_id = incident.aff_usr_id 
		AND incident.aff_usr_id <> 0 



Думал может возможно сделать расчет между пробелами и подставить в
Код: plsql
1.
SUBSTRING


Может еще есть какие-то варианты?
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827733
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexandrAVG,

Код: sql
1.
2.
DECLARE @n nvarchar(max)='Иванов Иван Иваныч'
SELECT	LEFT(RIGHT(@n,LEN(@n)-CHARINDEX(' ', @n)),CHARINDEX(' ', RIGHT(@n,LEN(@n)-CHARINDEX(' ', @n))))
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827740
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Викт.AlexandrAVG,

Код: sql
1.
2.
DECLARE @n nvarchar(max)='Иванов Иван Иваныч'
SELECT	LEFT(RIGHT(@n,LEN(@n)-CHARINDEX(' ', @n)),CHARINDEX(' ', RIGHT(@n,LEN(@n)-CHARINDEX(' ', @n))))



точнее даже
Код: sql
1.
2.
3.
DECLARE @n nvarchar(max)='Жловадин Антуан Иваныч'

SELECT	LEFT(RIGHT(@n,LEN(@n)-CHARINDEX(' ', @n)),CHARINDEX(' ', RIGHT(@n,LEN(@n)-CHARINDEX(' ', @n)-1)))
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827744
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И всё бы было хорошо, но бывают, сцуко, имена в виде "Мария Антуанетта", или, что хуже "Мария - Антуанетта" (ага, пробел - тире - пробел).
Причем, млин, в выборке по РФ, где ничто, т.с., не предвещает.

Так что предыдущий ответ, безусловно, верный. Но на любой выборке больше 500 тыс человек - обязательно сломается.
(Из опыта прежней жизни в налоговой).
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827746
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
declare @n varchar(100) = 'Иванов   Иван Иваныч';

select
 a.x.value('n[text()][2]', 'varchar(100)')
from
 (select cast('<n>' + replace(@n, ' ', '</n><n>') + '</n>' as xml)) a(x);
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827749
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А теперь то же для

Мухамед Бен Оглы Тин
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827752
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в Испании вообще у многих по 4 и более имен
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827756
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в Индии сначала идёт имя , а уже потом фамилия
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827769
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
глянул доступный список людей.
нашел фио из 5 слов.
умные разработчики сделали отдельно поля Ф,И,О
оказалось, что имя - 2 слова, фамилия - 3 слова, отчества нету
счастья тебе, AlexandrAVG
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827776
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для 2017 версии найти второе слово (не имя) как-то так
Код: sql
1.
2.
3.
4.
select usr_n,t.* 
from usr x
cross apply (select value, ROW_NUMBER() over (order by (select 1)) rn from string_split(x.usr_n,' ')) t
where t.rn = 2
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827780
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st,

string_split не гарантирует порядок строк в результируещем наборе.
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827791
AlexandrAVG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Викт.,

Спасибо большое!
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827814
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827834
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmandy st,
string_split не гарантирует порядок строк в результируещем наборе.
кстати, серьезный минус. по-хорошему, должно возвращать датасет из двух полей - порядковый номер и собственно куски строки

пользуясь случаем
голосование насчёт string_split
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827839
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakillinvmandy st,
string_split не гарантирует порядок строк в результируещем наборе.
кстати, серьезный минус. по-хорошему, должно возвращать датасет из двух полей - порядковый номер и собственно куски строки

пользуясь случаем
голосование насчёт string_split Тогда надо добавить и разделение символами из набора разделителей.
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827848
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иногда колхозят через PARSENAME (с предварительном заменой пробелов на точки).
А вообще задача нерешаемая, составляющие имени нужно хранить в отдельных столбцах.
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827856
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

Зачем?
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827874
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы иметь возможность вытащить только имя.
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827899
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

И зачем иметь возможность вытащить только имя?
Пример из первого поста предназначен чисто для обучения.
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827910
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер, %first_name%
лучше чем
Добрый вечер, %last_name%
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827916
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

"Добрый вечер, ФИО" более корректно.
Потому что лицо, получающее такое письмо, может быть в почтенном возрасте.
...
Рейтинг: 0 / 0
Как вывести только Имя из столбца ФИО
    #39827931
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2016+ из запасников stackoverflow
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
declare @pers table(id int, fio varchar(1000))

insert into @pers select 1, 'Петров Петр Петрович' union all select 2, 'Сидоров Сидор Сидорович' union all select 3, 'Васин Вась Васич' 

select id ,fio
,max(case when [key]=0 then [value] end) Ф
,max(case when [key]=1 then [value] end) И
,max(case when [key]=2 then [value] end) О
from @pers
cross apply openjson('["' + replace(fio,' ','","') + '"]') Z
group by id,fio
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как вывести только Имя из столбца ФИО
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]