Если у меня есть таблица базы данных SQL Server с столбцом бит-бита, и я хотел бы объединить логическое ИЛИ всех строк или несколько строк на основе предиката, как я могу достичь этого.Объединить значение битового поля по нескольким строкам (логическое ИЛИ накопление)
Например, таблица детали порядка имеет поле флага с сайт1 = 1 и site2 = 2.
Если заказ имеет две детали заказа записи, содержащие site1 и сайт 2, то я бы ожидать результирующее значение 3 для выбора.
Такая логика может выглядеть примерно так, но не существует функции агрегации для логического ИЛИ (или есть).
select ORDERNUM, SUM(LOGICAL OR (Flag))
FROM ORDER_DETAIL
GROUP BY ORDERNUM
Некоторые примеры:
site2
site2
site1
would equal 3
site2
site2
would equal 2
site1
would equal 1
Обратите внимание, что это решение работает только тогда, когда каждая строка имеет один значение бита (который работает на примере пользователя предусмотрен). Но если у нас есть данные по строкам вроде: 1, 1, 3, 7 (для чего вам нужен результат 7), вы получите 11. – GWR