gpt4 book ai didi

sql-server - 我可以在 Sql Server 中对一组数字执行按位和运算吗?

转载 作者:行者123 更新时间:2023-12-04 00:08:05 24 4
gpt4 key购买 nike

我有一个安全表,其中包含一组组和用户,每个组和用户都有按位整数权限。对于每个给定的用户,我想对他们的所有组和他们的个人权限记录(如果存在)执行按位 AND。

当然,我可以在我的代码中轻松执行此操作,但我宁愿在数据库中执行此操作,因为可能有数千个项目我正在查询权限。

与游标相比,我更喜欢基于集合的解决方案。

请注意,我无法控制架构。

最佳答案

如果您想要按位或单位值的所有值,则可以使用基于集合的解决方案:Performing a bitwise sum

或者,您可以使用不太优雅的方法对非唯一值集进行基于模糊集合的位运算:

DECLARE @BitSum INT
SET @BitSum = 0
SELECT @BitSum = @BitSum | BitValue
FROM (
SELECT 1 AS BitValue
UNION SELECT 7
UNION SELECT 16
) AS SampleValues
SELECT @BitSum

编辑:Hugo Kornelis 在另一篇文章中非常全面地回答了这个问题:http://www.eggheadcafe.com/software/aspnet/33139293/bitwise-aggregate-function.aspx

关于sql-server - 我可以在 Sql Server 中对一组数字执行按位和运算吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5895174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com