SQL检查位标志

时间:2018-06-04 18:47:31

标签: sql sql-server binary bit

因此,应用程序具有位标记的复选框。根据选择的复选框选项,应用程序将其作为整数存储在数据库中。如何查询数据库中的int以检查特定位是否打开/关闭。

示例:

Decimal   Binary
16        00010000
208       11010000

我想检查第5位是打开还是关闭(或任何相关内容)。

2 个答案:

答案 0 :(得分:0)

SQL Server没有位移操作符,但是这样的操作:

where decimal & (2^(5-1)) > 0

当然,使用位图引出了一个问题:为什么你不只是使用一组位标志?您可以单独定义每个,并且代码更容易阅读。

答案 1 :(得分:0)

您可以通过乘以或除以2

在SQL中定义位移运算符

可以在此处找到执行此操作的存储过程示例: http://dataeducation.com/bitmask-handling-part-4-left-shift-and-right-shift/