Là một phần của tổng hợp phức tạp, tôi muốn biết số tiền bitwise của một số dữ liệu, ví dụ: nếu tôi có các hàng có giá trị 1,1,1,2,2,8 thì số tiền bitwise 11. Trong trường hợp này các giá trị là tất cả các quyền hạn chính xác của hai (một bit), vì vậy tôi có thể hack xung quanh nó bằng cách nhóm và tổng hợp qua các nhóm (rõ ràng ví dụ này hơi bị tra tấn so với truy vấn thực):Thực hiện tổng bitwise
select SUM(y.test)
from (
select x.test
from (-- garbage test data
select 1 as [test]
union all select 1
union all select 1
union all select 2
union all select 2
union all select 8) x
group by x.test) y
nhưng có cách nào gọn gàng để thực hiện tổng bitwise trong [T] SQL không?
Marc, về cơ bản bạn đang nói về ORING tất cả các giá trị đó? Hoặc bạn có nghĩa là loại bỏ các bản sao đầu tiên, sau đó thêm (không chắc chắn tôi muốn sử dụng thuật ngữ bitwise cho rằng mặc dù)? – paxdiablo
@paxdiablo cả hai; bitwise OR trên tập hợp sẽ giống hệt với bổ sung duy nhất, vì mỗi là một sức mạnh tuyệt đối của 2 –