Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как изменить данные в определенной строкестроке  [new]
Zoya_Murmansk
Member

Откуда:
Сообщений: 21
Добрый вечер! Подскажите пожалуйста лузеру, есть строки с такими например виде
'Фамилия Имя Отчество' и 'Фамилия И О'.
Как строки 'Фамилия И О' привести к такому виду 'Фамилия И.О.' при этом неизменив строки с данными 'Фамилия Имя Отчество'?
1 окт 14, 21:54    [16647329]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить данные в определенной строкестроке  [new]
SERG1257
Member

Откуда:
Сообщений: 2752
Zoya_Murmansk
Как строки 'Фамилия И О' привести к такому виду 'Фамилия И.О.'
Командой update
Zoya_Murmansk
при этом неизменив строки с данными 'Фамилия Имя Отчество'?
Кляузой where в команде update
1 окт 14, 22:07    [16647374]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить данные в определенной строкестроке  [new]
Zoya_Murmansk
Member

Откуда:
Сообщений: 21
SERG1257,

Очень интересно как ты сделаешь это в where если фамилия имя отчество разные?
1 окт 14, 22:50    [16647498]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить данные в определенной строкестроке  [new]
SERG1257
Member

Откуда:
Сообщений: 2752
Зоя, я ценю твою веру в мою проницательность и всевидение, но увы мой хрустальный шар слегка помутнел. Смысл моего ответа был что изменить значения поля ты сможешь только командой update и никак иначе (вернее можно и по-другому, но рано тебе об этом), а пропустить строки можно только кляузой where. Что именно там писать, как именно парсить поле на фамилию имя отчество, как именно обрабатывать исключения в виде Полада Бюль Бюль Оглы и как отличить инициал от короткого имени в одну букву останется за тобой.
1 окт 14, 23:01    [16647551]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить данные в определенной строкестроке  [new]
Zoya_Murmansk
Member

Откуда:
Сообщений: 21
SERG1257,
Спасибо и на этом
2 окт 14, 08:47    [16648134]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить данные в определенной строкестроке  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
Zoya_Murmansk,

declare @t table (fio varchar(100))

insert @t values ('Пушкин А С'),('Лермонтов А.М.'),('Есенин Сергей'),('Блок А. А.'),('Вяземский Пётр Андреевич'),(''),(NULL)

update @t
set fio=CASE WHEN SUBSTRING(fio,DATALENGTH(fio)-1,1)=' ' AND SUBSTRING(fio,DATALENGTH(fio)-3,1)=' '
			 THEN LEFT(fio,DATALENGTH(fio)-2)+'.'+RIGHT(fio,1)+'.'
			 ELSE fio
		END
WHERE DATALENGTH(fio)>4

select * from @t
2 окт 14, 09:26    [16648265]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить данные в определенной строкестроке  [new]
nizamovich
Member

Откуда: Москва
Сообщений: 116
Zoya_Murmansk,

пример в студию
2 окт 14, 10:07    [16648441]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить данные в определенной строкестроке  [new]
Zoya_Murmansk
Member

Откуда:
Сообщений: 21
Всем спасибо.
Помогла вот такая конструкция:
UPDATE Table
SET
	fio = SUBSTRING(fio, 1, LEN(fio) - 2) + '.' + SUBSTRING(fio, LEN(fio), 1) + '.'
WHERE SUBSTRING(fio, LEN(fio) - 3, 1) = ' ' and SUBSTRING(fio, LEN(fio) - 1, 1) = ' '
2 окт 14, 11:05    [16648872]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить