我试图使用一个更新查询来翻转SQL Server中的一个字段,也就是说,我想将所有0转换成1,反之亦然.最优雅的解决方案是什么?

t-SQL中似乎没有按位NOT运算符(除非我遗漏了一些明显的内容),而且我也找不到任何其他执行更新的方法.

推荐答案

这不需要按位计算,只要用1/true对其进行异或即可.

要查看它:

select idColumn, bitFieldY, bitFieldY ^ 1 as Toggled
from tableX

要更新:

update tableX
set bitFieldY = bitFieldY ^ 1
where ...

MSDN T-SQL Exclusive-OR (^)

Sql相关问答推荐

SQL -连接两个表的次数与第一个表中匹配的次数相同

PostgreSQL:获取每家店铺收入最高的员工

如何更改函数返回的列名?

从原始表列中经过JSON字符串化的对象数组构建视图

PostgreSQL中的合并命令是原子的,还是需要一些类似于SQL Server版本的内容?

MariaDB查询在逗号分隔的字符串中查找多个值

如何利用单列历史SQLsnowflake获得合并结果

基于多列比较连接两个表

如何查找所提供日期范围的所有季度开始日期和结束日期

在SQL中为两个日期之间的每个日期添加行

SQL Athena/prest判断值是否在嵌套的json数组中

按连续相等值分组排序

MS Access问题查询中的自定义字段

如何在连接中使用三个不同的列,从而在PostgreSQL中只获得两个列?

使用CTE在SNOWFLAKE中创建临时表

替换SQL Server XML中多处出现的 node 值

具有分组条件的不同计数 (DAX)

每个ID的SQL返回可能的最低级别及其值

批量更改WooCommerce中所有产品的税收状态

查找距上一条记录大于或等于 30 天的记录