Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.02.09;
Скачать: CL | DM;

Вниз

sql replace странно работает   Найти похожие ветки 

 
Jord   (2013-04-11 11:12) [0]

СУБД: 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 с учетом регистра, второй без учета регистра.


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

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


 
Jord   (2013-04-11 11:29) [2]


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


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


 
Jord   (2013-04-11 11:30) [3]

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


 
Ega23 ©   (2013-04-11 11:31) [4]

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

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

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

Всё штатно.


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


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


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


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


> Jord   (11.04.13 11:29) [2]

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


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


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


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

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


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


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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2014.02.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
2-1365523647
SKIPtr
2013-04-09 20:07
2014.02.09
обращение к секторам диска


15-1377603940
Sergey13
2013-08-27 15:45
2014.02.09
C# и БД


2-1365163474
Дмитрий С
2013-04-05 16:04
2014.02.09
Узнать класс слушателя события.


2-1364751359
Вова
2013-03-31 21:35
2014.02.09
Построение Хэша


2-1365248739
Den
2013-04-06 15:45
2014.02.09
Форматирование исходного кода?