首页 > 解决方案 > SQL如何查找某个位是否打开

问题描述

Select '5th bit on'
Where 16 & (2^(5-1)) > 0

为什么这不起作用?我只想知道从十进制到二进制的某个位是否打开/关闭。我一定错过了一些非常基本的东西。

标签: sqlsql-serverbitflagsbitmask

解决方案


^xor 运算符,而不是我怀疑您期望的运算符的“力量”。相反,您可以使用以下power功能:

Select '5th bit on'
Where 16 & (POWER(2, (5-1))) > 0

推荐阅读