检测是否在数值中设置了位

Joe*_*eky 6 sql-server stored-procedures syntax

我有一个表示一组标志的 tinyint 列。假设我想知道是否设置了特定位,我如何在存储过程中执行按位 AND/OR 操作?

Mar*_*ith 5

根据您之前的问题,您使用 SQL Server。所以你可以使用& 运算符

例如,查看 4 的位是否打开(并假设NULL应该返回NULL

SELECT CASE number & 4 WHEN 4 THEN 1 WHEN 0 THEN 0 END
Run Code Online (Sandbox Code Playgroud)