Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизБинарная логика в Firebird Найти похожие ветки
← →
-SeM- (2004-03-31 11:01) [0]В таблице базы Firebird есть поле INTEGER, выполняющее роль битового массива. Каким должно быть условие запроса, чтобы ,например, выбрать все записи с включенным 5 битом этого поля?
← →
Johnmen © (2004-03-31 11:05) [1]Использовать UDF. Напр. в RFUNC есть функции битовых операций.
← →
-SeM- (2004-03-31 11:17) [2]UDF не хотелось бы...
А других вариантов нет?
← →
Johnmen © (2004-03-31 12:03) [3]Напр. так
... WHERE
CAST(MyIntField/16.0-0.5 AS INTEGER)/2.0 -
CAST((CAST(MyIntField/16.0-0.5 as integer)-0.5)/2.0 AS INTEGER) > 0
если в твоей нумерации 5-ый бит это 16
:)
← →
-SeM- (2004-03-31 12:51) [4]Сенкс!
Длинно, но работает :)
← →
Digitman © (2004-03-31 13:05) [5]
> UDF не хотелось бы
а почему ? идеальный же вариант ..
а CAST"ы подобного рода, как ни крути, на больших НД будут давать ощутимую потерю производительности запросов
← →
-SeM- (2004-04-01 10:45) [6]Не, я ничего не имею против UDF, просто в данном случае лучше запросом.
Тем более что данных не много :)
Спасибо.
Вопрос снят.
← →
Desdechado © (2004-04-01 13:48) [7]так UDF в запросе можно использовать
тем паче в стандартной поставке ib_udf.dll идет с битовыми функциями
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.058 c