一个有趣的SQL命题 用一条语句切换BIT型的真假值

 更新时间:2009年08月05日 23:17:43   作者:  
有个需求,用一条SQL语句(SQL SERVER)的,切换某个BIT字段值。也就是说从TRUE变FALSE,从FALSE到TRUE。
当然,第一反应是用存储过程。判断原来这个字段值,然后UPDATE。
网上粗粗找了一下没找到方案。自己一动手,居然有个很有趣的结果,连WHERE都不用
对数据库的BIT型赋值,用SQL语句来操作和用管理界面输入不同。管理界面输入必须用TRUE或FALSE来填写。而SQL语句则用0或1
于是乎,先尝试:
复制代码 代码如下:

updat t set b=b+1 where id=1;
select b from t where id=1;

b字段一直保持1
那么用减号呢
复制代码 代码如下:

update t set b=b-1 where id=1;
select b from t where id=1;

可以发现每次结果就在0和1之间切换,SQL SERVER把-1当做1来处理。
这个需求很容易就解决了。
通常这在一些状态切换(或开关)的地方会用到,在需求中不需要知道切换后的情况。很有趣也很简单,呵呵

相关文章

  • sqlserver查询去掉重复数据的实现

    sqlserver查询去掉重复数据的实现

    这篇文章主要介绍了sqlserver查询去掉重复数据的实现操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • SQL窗口函数的使用方法

    SQL窗口函数的使用方法

    MySQL8.0版本之后,加入了窗口函数功能,简化了数据分析工作中查询语句的书写。本文主要介绍了SQL窗口函数的使用方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • SQL Server表空间碎片化回收的实现

    SQL Server表空间碎片化回收的实现

    本文主要介绍了SQL Server表空间碎片化回收的实现,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • SQL Server存储过程同时返回分页结果集和总数

    SQL Server存储过程同时返回分页结果集和总数

    这篇文章主要为大家详细介绍了SQL Server存储过程同时返回分页结果集和总数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • SQL 查询和删除重复字段数据的方法

    SQL 查询和删除重复字段数据的方法

    这篇文章介绍了SQL 查询和删除重复字段数据的方法,有需要的朋友可以参考一下
    2013-08-08
  • SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用

    SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用

    今天在配置sql server 代理服务器的计划任务的时候发现了日志中提示这个SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用信息导致无法执行计划任务,那么可以按照下面的方法解决即可
    2021-06-06
  • SQL server高级应用 收藏版

    SQL server高级应用 收藏版

    SQL server高级应用 收藏版,使用sqlserver的朋友可以参考下
    2012-08-08
  • SQL中的单条件判断函数IF和多条件判断CASE WHEN的用法

    SQL中的单条件判断函数IF和多条件判断CASE WHEN的用法

    MySQL提供了IF、IFNULL、CASE等条件判断函数,本文就来介绍一下SQL中的单条件判断函数IF和多条件判断CASE WHEN的用法,感兴趣的可以了解一下
    2023-10-10
  • SQL多行值合并一行字符串逗号分隔

    SQL多行值合并一行字符串逗号分隔

    本文主要介绍了SQL多行值合并一行字符串逗号分隔,主要使用LISTAGG函数,该函数用于将多个行中的值连接为一个字符串,并且可以指定分隔符来分隔每个值,感兴趣的可以了解一下
    2023-11-11
  • SQLServer 清理日志的实现

    SQLServer 清理日志的实现

    本文主要介绍了SQLServer 清理日志的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01

最新评论