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

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

Создание sql запроса


Страницы:   1 2

ganda ©   (2008-10-23 09:06:00) 

имеется таблица Table1, там же есть поле Field1 (тип строковой) в нем содержится допустим символ "Y"  его нужно заменить на "y". Собственно вопрос как можно реализовать одним sql-запросом такую замену?


Anatoly Podgoretsky   (2008-10-23 19:31:00) [1]

> stas  (23.10.2008 12:05:18)  [18]

С какой стати все, когда в вопросе, только те, которые равны Y


Anatoly Podgoretsky   (2008-10-23 19:30:00) [2]

> ganda  (23.10.2008 9:44:12)  [12]

Ты не в той таблице делаешь обновление, в вопросе Table1, а в запросе Table, кроме того обновляешь не те значения, которые согласно твоему вопросу, равны Y, а все буквы Y.


Правильный$Вася   (2008-10-23 13:54:00) [3]


> но не факт что это облегчит работу серваку.

заметно облегчит
хотя бы тем, что модифицироваться будут только нужные записи, в лог наката и в статистику не будет литься мусор


stas   (2008-10-23 13:35:00) [4]

Palladin ©   (23.10.08 12:24) [22]
исходя из того что мы знаем можно лишь написать
Where field1 like'%y%'
но не факт что это облегчит работу серваку.


Johnmen   (2008-10-23 13:25:00) [5]

Тупо бессмысленно говорить вообще о поле, у которого либо 'Y' либо 'N'
:))


Ega23   (2008-10-23 12:36:00) [6]


> как это как.. тебе незнаком раздел update запроса - where ?


Известен. Мне полное условие задачи неизвестно: как часто встречается y в записях, нужно заменять только те поля, которые равны 'y' или и 'By' и 'yYy' и т.п.
Поэтому в такой ситуации говорить о какой-то оптимизации - тупо бессмысленно.


Palladin   (2008-10-23 12:24:00) [7]


> stas ©   (23.10.08 12:18) [20]

как это как.. тебе незнаком раздел update запроса - where ?


stas   (2008-10-23 12:20:00) [8]

Palladin ©   (23.10.08 12:09) [19]
я по поводу единоразового обновления, если конечно это будет где-то в программе выполнятся постоянно, то конечно же я против такого решения.


stas   (2008-10-23 12:18:00) [9]

Palladin ©   (23.10.08 12:09) [19]
Ну, а как по другому?


Palladin   (2008-10-23 12:09:00) [10]

Ну кто из нас интересней это еще вопрос :) А вот обновлять всесто тыщь миллионов ради "символ "Y"  его нужно заменить на "y""это даже не знаю как сказать... подход довольно гени тальный... прошу прощенья за мой французский...


stas   (2008-10-23 12:05:00) [11]

Palladin ©   (23.10.08 10:03) [15]
Правильный$Вася   (23.10.08 12:00) [17]

Вот интересные вы люди, а что делать ему если надо обновить все данные?


Правильный$Вася   (2008-10-23 12:00:00) [12]


> Ega23 ©   (23.10.08 10:25) [16]

ты не прав
лог изменений накатывается, кэш данных забивается, индексы неиспользуются
системная статистика сбивается


Ega23   (2008-10-23 10:25:00) [13]


> Вне зависимости от реальной необходимости? То бишь все сто
> тыщь миллионов? Даже если там только одна запись с Y тебе
> нужно все сто тыщь миллионов изменить? :)


Если это разовая операция и исполняется вместо десяти секунд пять минут - то пофиг.
А вот если это не разовая - тут уже да.


Palladin   (2008-10-23 10:03:00) [14]


> А мне как раз и нужно все записи изменить!

Вне зависимости от реальной необходимости? То бишь все сто тыщь миллионов? Даже если там только одна запись с Y тебе нужно все сто тыщь миллионов изменить? :)


ganda   (2008-10-23 09:59:00) [15]

А мне как раз и нужно все записи изменить!


Сергей М.   (2008-10-23 09:48:00) [16]


> ganda   (23.10.08 09:44) [12]


Плохое решение. И не только для Оракла.
ты апдейтишь всезаписи в таблице, вне зависимости от реальной необходимости.


ganda   (2008-10-23 09:44:00) [17]

Спасибо за ответы! Решение найдено

update Table set Field1 = REPLACE(Field1,  'Y', 'y')


Сергей М.   (2008-10-23 09:29:00) [18]


> речь пока не идёт, о создание программы


Как это не идет ?!

Ты уже шлепнул на форму некий компонент Table1, следовательно, ужеположил начало реализации алгоритма программы..


easy   (2008-10-23 09:28:00) [19]

http://www.adp-gmbh.ch/ora/sql/upper.html


Сергей М.   (2008-10-23 09:26:00) [20]


> построение sql-запроса в Oracle


SQL92/99 одинаков везде - текст интересующего UPDATE-запроса будет практически одинаков что в Oracle, что на Луне.

А знание расширенных SQL-диалектов ("глубокие знания"), специфичных для той или иной СУБД (в твоем случае Oracle), для решения такой тривиальной задачи вовсе не требуется.


Страницы:   1 2

Наверх

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