ФИО в одном поле через пробелы - разнести по отдельнымполям

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Ответить
Читатель
Сообщения: 24
Зарегистрирован: 13 янв 2005, 14:01

Ни у кого нет готового решения?
Фамилия Имя Отчество - поле varchar, идут через пробелы
надо разнести по отдельным полям Имя, Фамилия, Отчество
и оставить первое поле?
Absurd
Сообщения: 1228
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

А что за СУБД?
2B OR NOT(2B) = FF
Читатель
Сообщения: 24
Зарегистрирован: 13 янв 2005, 14:01

MS SQL Server 2000
Yurich
Сообщения: 107
Зарегистрирован: 23 фев 2004, 19:07

Должно быть что-то типа этого... Синтаксис не проверял, но идея должна быть понятна.

Код: Выделить всё

select 
 substring(FIO,0,charindex(' ',FIO,0)) as F,
 substring(FIO,charindex(' ',FIO,0)+1,charindex(' ',FIO,charindex(' ',FIO,0)+1)-charindex(' ',FIO,0)) as I,
 substring(FIO,charindex(' ',FIO,charindex(' ',FIO,0)+1)+1, len(FIO)-charindex(' ',FIO,charindex(' ',FIO,0)+1)) as O
from YourTable
Да, ну и не учитывается возможность наличия пробелов в начале и в конце поля FIO. Кроме того, принимается что данные в строке разделены только одним пробелом.

Соответствующий UPDATE думаю ты и сам напишешь.
Читатель
Сообщения: 24
Зарегистрирован: 13 янв 2005, 14:01

спасибо
Ответить