sql-server - T-SQL 中的位翻转操作

标签 sql-server tsql bit-manipulation

我的数据库中有一个位掩码 int 字段。通常我通过 C# 代码来管理它,但现在我需要使用 T-SQL 在掩码中翻转一点

如何完成以下任务:

The bit I want to flip: 1 << 8 (256)

The mask value before I flip: 143

The mask value after I flip: 399

这可以在没有 T-SQL 中缺少的位运算符的情况下完成,对吧?

最佳答案

使用异或:

SELECT value ^ 256

因此,在您的情况下,SELECT 143 ^ 256 确实会返回 399。如果您还想传递指数:

SELECT value ^ POWER(2, power)

关于sql-server - T-SQL 中的位翻转操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1110155/

相关文章:

sql - T-SQL : How to deny update on one column of a table via trigger?

sql - 如何根据空格拆分字符串?

sql - 使用起始值设置 Identity_insert ON

c - 为什么该函数可以正常使用 float 而不能使用 double?

c++ - 保证原子性的单位操作

java - Java中基于位板的数组生成问题

sql-server - 如何在多个 SELECT 输出中标记结果表

sql-server - 使用 "FOR XML PATH"时如何避免编码?

sql-server - HTTP 状态 500 - 此驱动程序不支持 Java 运行时环境 (JRE) 版本 1.7

sql-server - 通过选择多个表到某个文件位置从 SQL Server 生成 XML