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

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

Подскажите конструкцию SQL [D7, dBase, FoxPro]


ocean ©   (2007-10-19 13:58:00) 

Моя программа должна выбрать записи из таблицы dBase4, я использую BDE:
Query1.Text := 'select * from mytable where myfield<"100"';
Поле MyField описано как символьное длиной 8, но принимает только целые значения. Понятно, что приведенный выше запрос не сработает, поскольку сравнивает не числа, а строки. Конечно, я могу выбрать все, а потом обработать полученные строки в программе. А нет ли более изящного решения в SQL?


Правильный_Вася   (2007-10-19 19:07:00) [1]


> Cast, насколько я помню, есть в Oracle, но вряд ли есть в BDE.

везде есть, это стандартом определено


fishka   (2007-10-19 19:00:00) [2]

Query1.Text := 'select * from mytable where cast(myfield as Integer)<100';

Это расшифровка ответов 1 и 2.


ocean   (2007-10-19 18:47:00) [3]

Trim не помог:
> Query1.Text := 'select * from mytable where trim(myfield)<"100"';
Например, запись со значением 15 не выбирается.
Cast, насколько я помню, есть в Oracle, но вряд ли есть в BDE.


megabyte   (2007-10-19 14:42:00) [4]

Если в поле только цифры, то через Cast


Правильный_Вася   (2007-10-19 14:03:00) [5]


> приведенный выше запрос не сработает

сработает
вот только результат зависит от того, как наполнено поле, есть ли спереди пробелы, минусы и т.п.

Trim, CAST
?


Наверх

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