![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Битовые операции в SQL
bumper © (2006-07-28 00:12:00)Здравствуйте.
Выскажитесь, знающие, как элеганто проверить определённый бит числового поля в SQL запросе?
м.б. существует какой-то синтаксис для манипуляции битами?
UDF пока в расчёт не берём......и деление не сильно приветствуется....хотя если без него никак.......... :)
Desdechado (2006-07-28 17:38:00) [1]ЮЮ © (28.07.06 11:30) [5]
в FB2 появилась возможность построения индекса по выражению, в т.ч. с участием функций
Медведъ (2006-07-28 17:28:00) [2][5]
Desdechado (2006-07-28 15:47:00) [3]Johnmen © (28.07.06 11:25) [4]
есть подозрение, что UDF работает быстрее в силу скомпилированности кода, а не интерпретации исполнителем команд
Ega23 (2006-07-28 11:33:00) [4]В MSSQL есть "|" и "&".
Не знаю, правда, они из T-SQL или из ANSI пришли...
ЮЮ (2006-07-28 11:30:00) [5]Если скорость важна, то почему так хочется полного сканирования таблицы?
Johnmen (2006-07-28 11:25:00) [6]Пример проверки 5-го бита в поле F (integer):
WHERE CAST(F/16.0-0.5 AS INT)/2.0 -
CAST((CAST(F/16.0-0.5 AS INT)-0.5)/2.0 AS INT) > 0
bumper (2006-07-28 11:07:00) [7]БД Firebird 1.5.3.... Биты, потому что индексов по ним не надо совсем, а разница между между 2-мя байтами (smallint) и 16-тью (те же флаги, но в отдельных полях) особенно заметна, если записей этак чуть больше миллиона.....
...Долго мучившись, пришёл к выводу, что элегантнее чем UDF изобрести не удастся...... Поправьте если не так..... Ибо скорость тоже важна.
ЮЮ (2006-07-28 09:36:00) [8]>Осталось выяснить, что за БД
А потом сказать о неверной структуре БД :) Почему биты, а не таблица с отношением 0..N ?
Johnmen (2006-07-28 09:08:00) [9]Осталось выяснить, что за БД