Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

sql replace странно работает


Jord ©   (2013-04-11 11:12:00) 

СУБД: DBISAM

Делаю replace по полю name


UPDATE item SET name = REPLACE(LCASE('БК') WITH 'Бк' IN LCASE(name));


Поле name имеет значения:

name
----
Пиджак Stefanel
Куртка Apriori
Юбка Oltre
Юбка NTS
Платье Rinascimento

В результате получается:

name
----
пиджак stefanel
куртка apriori
юБка oltre
юБка nts
платье rinascimento

Почему все значения стали в нижнем регистре?

Задача, написать 2 запроса, первый из которых делает replace с учетом регистра, второй без учета регистра.


Jord   (2013-04-11 15:02:00) [1]

Просто сама функция по дефолту с учетом регистра работает


Jord   (2013-04-11 14:56:00) [2]

Но хотелось бы сделать все если это возможно sql-запросом


Jord   (2013-04-11 14:55:00) [3]


> Как задача звучит?


Есть программа для работы с товарной базой магазина. Пользователь выполняет поиск товаров. Нужно предусмотреть операцию, которая бы позволяла изменять значения поля name для найденных товаров с учетом и без учета регистра.

Можно конечно пробежаться по датасету делая:


DS.Edit;
try
 DS.FieldByName('name').AsString := StringReplace();
 DS.Post;
except
 DS.Cancel;
 raise;
end;  


Плохиш   (2013-04-11 12:28:00) [4]


> Jord   (11.04.13 11:29) [2]

Надо добавить where в запрос и заменять только в требуемых записях.


Ega23   (2013-04-11 11:34:00) [5]


> replace ведь сравниваем с учетом регистра, как не используя
> LCASE проверить без учета регистра?


Как задача звучит?


Ega23   (2013-04-11 11:31:00) [6]

заменить lcase от 'БК'  на 'Бк' в lcase от name

Т.е. заменить 'бк' на 'Бк' в lcase от name

при, например, Name = 'ЮБКА'  lcase name = 'юбка', а после Replace - 'юБка'

Всё штатно.


Jord   (2013-04-11 11:30:00) [7]

replace ведь сравниваем с учетом регистра, как не используя LCASE проверить без учета регистра?


Jord   (2013-04-11 11:29:00) [8]


> что написал то и получил.
> обновить name значением name в нижнем регистре, в котором
> БК заменено на Бк


Как тогда правильно написать запрос?


Медвежонок Пятачок   (2013-04-11 11:18:00) [9]

что написал то и получил.
обновить name значением name в нижнем регистре, в котором БК заменено на Бк


Наверх

Титульная страница Поиск, карта сайта Написать письмо