Форум: "Базы";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];
ВнизПодскажите конструкцию SQL Найти похожие ветки
← →
ocean © (2007-10-19 13:58) [0]Моя программа должна выбрать записи из таблицы dBase4, я использую BDE:
Query1.Text := "select * from mytable where myfield<"100"";
Поле MyField описано как символьное длиной 8, но принимает только целые значения. Понятно, что приведенный выше запрос не сработает, поскольку сравнивает не числа, а строки. Конечно, я могу выбрать все, а потом обработать полученные строки в программе. А нет ли более изящного решения в SQL?
← →
Правильный_Вася (2007-10-19 14:03) [1]
> приведенный выше запрос не сработает
сработает
вот только результат зависит от того, как наполнено поле, есть ли спереди пробелы, минусы и т.п.
Trim, CAST
?
← →
megabyte © (2007-10-19 14:42) [2]Если в поле только цифры, то через Cast
← →
ocean © (2007-10-19 18:47) [3]Trim не помог:
> Query1.Text := "select * from mytable where trim(myfield)<"100"";
Например, запись со значением 15 не выбирается.
Cast, насколько я помню, есть в Oracle, но вряд ли есть в BDE.
← →
fishka (2007-10-19 19:00) [4]Query1.Text := "select * from mytable where cast(myfield as Integer)<100";
Это расшифровка ответов 1 и 2.
← →
Правильный_Вася (2007-10-19 19:07) [5]
> Cast, насколько я помню, есть в Oracle, но вряд ли есть в BDE.
везде есть, это стандартом определено
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.045 c