Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-1081310743
BanderLog
2004-04-07 08:05
2004.04.25
MouseWheel - Up & Down для PaintBox


1-1081155133
MegaVolt
2004-04-05 12:52
2004.04.25
Простенький архиватор.


14-1080581287
Fog
2004-03-29 21:28
2004.04.25
Вопрос к олимпиаде по информатике...


1-1081516382
Koba
2004-04-09 17:13
2004.04.25
Cannot open file


8-1077481762
VasRog
2004-02-22 23:29
2004.04.25
Dec и Scanline





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский