Форум: "Базы";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
ВнизНеточный поиск IB Найти похожие ветки
← →
DimaF © (2004-03-23 07:58) [0]IB Firebird 1.5 диалет 3. Друзья помогите.
в TTable былоа такая функция FindNearest неточный поиск.
перешол на IBX там ее нет. подскажите текс функции на SQL
IF (EXISTS(SELECT F_NOMER FROM TABL_1
WHERE (F_NOMER = :F_FIND_NOMER)))
не подходит (Ишит точные софпадения) :O(
← →
makz (2004-03-23 08:05) [1]CONTAINING
← →
Zacho © (2004-03-23 08:06) [2]Подробнее опиши что именно тебе надо. А то, мягко говоря, не совсем понятно.
LIKE ?
Или, если нужно искать в НД, Locate c loPartialKey ? Или что-то другое ?
← →
DimaF © (2004-03-23 08:38) [3]нужно написать процедуру на SQL для Firebird 1.5 диалет 3.
чтобы она искала максимально приближенное значение в таблице по заданому полю а возврощяла все поля найденой строки.
а потом я через IBStoredProc значения задам и выташю.
часть моей прцедуры:ишит точно :(
IF (EXISTS(SELECT F_NOMER FROM TABL_1
WHERE (F_NOMER = :F_FIND_NOMER)))
← →
Zacho © (2004-03-23 09:09) [4]О, боже !!! В конце концов, объясни, что такое "максимально приближенное " ?
И нафига для этого ХП ? (Кстати, не советую пользоваться TIBStoredProc, почему - смотри http://www.ibase.ru/devinfo/ibstp.htm )
Есть LIKE, CONTAINING, STARTING WITH .. Можно и еще варианты придумать.. Что именно тебе надо ? Объясни наконец нормально, тогда и нормальный ответ получишь.
И в любом случае тебе явно необходимо изучить какое-нибудь пособие по SQL (например, М.Грубер "SQL (бестселлер)" ) и Language Reference.
← →
DimaF © (2004-03-23 11:18) [5]в таблице есть записи
1
3
5
7
10
15
начинаю искать 4 выдост 5.
максимально близкая запись.
TTable.FindNearest такая функция есть.
← →
Соловьев © (2004-03-23 11:39) [6]а почему не 3?
← →
Соловьев © (2004-03-23 11:49) [7]ИМХО, сделай ХП и реализуй данный алгоритм.
← →
Johnmen © (2004-03-23 11:51) [8]Минимальное отклонение (для численных типов)
SELECT * FROM Table
WHERE
(Value-Field) =
(SELECT MIN((SELECT MAX(Field) FROM Table)-Field) FROM Table)
← →
Domkrat © (2004-03-23 12:42) [9]Ув. мастера, у меня попутный вопрос.
Реально на SQL реализовать целочисленный поиск по такому принципу:
Набираем 2 получаем 22, если 2 отсутствует
или 222 если нет 2 и 22 и т.д.
Необходимо для быстрого позиционирования в DBGrid (100 000 строк)
Если можете поделитесь мыслями пожалуйста.
← →
Johnmen © (2004-03-23 12:48) [10]Мысли простые и всего 2 (две)
1. Такое кол-во строк никому не надо.
2. Locate
2прим. Прямое сканирование НД. При разумном кол-ве записей работает очень быстро.
← →
Domkrat © (2004-03-23 12:56) [11]Ну коекому надо. Привык народ так чтобы и туда и сюда и Locate
быстрый вот и приходиться выдумывать.
← →
Deniz © (2004-03-23 12:58) [12]> Domkrat © (23.03.04 12:42) [9]
select first 1 * from table where cast(MyIntegerField as varchar(20)) like "что_ты_там_набрал" || "%"
← →
makz (2004-03-23 12:58) [13]Value тогда должно быть между MIN(Field) и MAX(Field), иначе - нулл
← →
Domkrat © (2004-03-23 13:05) [14]2 Deniz
Спасибо щас попробую.
← →
Zacho © (2004-03-23 13:16) [15]
> Domkrat © (23.03.04 12:56) [11]
> Ну коекому надо.
На самом деле - никому не надо. Заявляю, исходя из собственного опыта и здравого смысла :)
А если уж очень хочется (хотя, по-моему, такое не только бесполезно, но и вредно, лучше бы действительно удобный интерфейс без гридов с 10000 записей сделал) - см. http://www.ibase.ru/d_fibc.htm, gb_DataSets
← →
Domkrat © (2004-03-23 13:27) [16]>То Zacho
О нем и речь только глюкавый он. А статью сейчас почитаю.
>To Deniz, спасибо еще раз. Кайф.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.038 c