Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос к знатокам MS SQL

GeWeR Профи (902), закрыт 4 года назад
Всем привет.
Вопрос к знатокам MS SQL.

Есть много строк. Например:

Вчера Олег купил много яблок
Вчера Денис купил чуть-чуть мандаринов
Вчера Вася купил кучу морковки

И так далее.

Нужно все строки привести к виду:
"Вчера Олег купил яблоки"
"Вчера Денис купил яблоки"
"Вчера Вася купил яблоки".

Про Replace знаю. Но как заменить только часть содержания строки? Например, чтобы после слова "купил" в каждой строке был одинаковый текст, если слово "купил" есть в каждой строке?
Лучший ответ
Грустный Пупсик Оракул (86226) 4 года назад
через пхп май админ командой
команду не помню-загугли
Остальные ответы
Аглая Шниц Искусственный Интеллект (137884) 4 года назад
как-то так примерно:

declare @example table (mycolumn varchar(128))
insert into @example values ('Вчера Олег купил много яблок')
insert into @example values ('Вчера Денис купил чуть-чуть мандаринов')
insert into @example values ('Вчера Вася купил кучу морковки')

declare
@delim varchar(128)

set @delim = ' купил '

update @example set
mycolumn = COALESCE(
SUBSTRING(mycolumn, 1, CHARINDEX(@delim, mycolumn)+len(@delim)) +
case
when mycolumn like '%яблок%' then 'яблоки'
when mycolumn like '%морков%' then 'морковь'
end,
mycolumn)

select * from @example
Иван СигаевИскусственный Интеллект (150015) 4 года назад
Как я понял ему тупо нужно заменить чтото_перед+"купил"+чтото_после на чтото_перед+"купил яблоки"
Аглая Шниц Искусственный Интеллект (137884) а-а, ну, тогда case...end поменять на 'яблоки', и вуаля.
Похожие вопросы