![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определение типа значения поля [D6]
Avsam © (2003-01-30 11:56:00)База - Оракл.
Есть поле VarChar2(25)
В нем может стоять как число, так и строка.
Задача стоит такая, надо определить максимальное число в этом поле. Напрямую Max(Field) не работает, поскольку в поле есть и не числовые данные.
Как бы отсеять все нечисловые и произвести Max только чреди чисел. Конечно, нужно все сделать SQL-запросом.
Бьюсь уже больше часа.
Reindeer Moss Eater (2003-01-30 14:23:00) [1]Решение без циклов, но на клиенте:
1. Экземпляр TQuery (Select VeryStrangeField From Table)
2. Экземпляр TTable (STANDARD, TableName:="Table1" )
3. Table1.BatchMove(Query1,batCopy)
4. Экземпляр TQuery Select MAX(cast(VeryStrangeField as Numeric)) From Table1
Reindeer Moss Eater (2003-01-30 13:28:00) [2]Да чего тут определяться-то?
Для меня разницы особой нет, где я получу результат.
Дал тебе первый вариант решения. Не подошло. Нет прав.
Дал второй. "Довольно медленно"
Хочется его просто получить и побыстрее (без долгих переборов и вычислений).
Без вычислений не бывает чуда.
Одно ограничение - никаких хранимых функций и других новых объектов на сервере.
А как же с тезисом "Для меня разницы особой нет"???
SQL-запросом вижу не получается.
Может можно набором запросов это сделать?
Можно одним запросом и одним циклом
Avsam (2003-01-30 12:59:00) [3]Да чего тут определяться-то?
Для меня разницы особой нет, где я получу результат.
Хочется его просто получить и побыстрее (без долгих переборов и вычислений).
Одно ограничение - никаких хранимых функций и других новых объектов на сервере.
SQL-запросом вижу не получается.
Может можно набором запросов это сделать?
Reindeer Moss Eater (2003-01-30 12:53:00) [4]Ты определись сначала.
Где ты хочешь получать результат.
На сервере или на клиенте.
Волшебства-то все равно не бывает.
Avsam (2003-01-30 12:35:00) [5]Можно, конечно, все на клиента перенести.
Но тогда придется просто подряд просматривать все записи таблицы.
А это может быть довольно медленно.
Reindeer Moss Eater (2003-01-30 12:23:00) [6]Можно все вычисления на клиента перенести
Avsam (2003-01-30 12:20:00) [7]А вот бы без хранимых функций.
Просто я не имею права это делать.
Может возможно часть вычислений перенести на клиента в Delphi?
Reindeer Moss Eater (2003-01-30 12:17:00) [8]Хранимая функция, курсор, цикл, TO_NUMBER, обработка исключений, возврат результата
roottim (2003-01-30 12:12:00) [9]посредством SQL никак...
пишеш что-то типа
function ValidNumber(p_num varchar2) return number
is
Result number;
begin
Result := To_number(p_num);
Return Result;
exception
when others then return null;
end;
а дальше select * from where ValidNumber(myField) is notn null
Или что там