平台:MS SQL 2005

一直以来对数据记录总会加入一些开关,而SQL 2005数据库的BIT是最佳选择,他只有两种状态相当于一个简单的逻辑关系。相比update tablename set state=1或update tablename set state=0,而逻辑关系有原因,可以直接用取反方式,下面会列出几种取反方法:

1、case when

update tableName set state=(case state when 0 then 1 when 1 then 0 else 0 end)

看起来很臃肿喔,其实就是简单的一个if语句的判断。

2、abs(绝对值)

update tableName set state=abs(state-1)

这看起来简洁一点,这种办法只是利用简单数学效果,但是说真的相比IF判断简洁许多。

3、~(按位非)

将某个给定的整型值转换为二进制表达式,对其执行按位逻辑非运算。这很符合我们取反的逻辑关系,因此我们可以这样:

update tableName set state=~state