![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите конструкцию 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
?