zoukankan      html  css  js  c++  java
  • mssql中对于bit类型字段的更新

    mssql中对于bit类型字段的更新一直使用的是先判断再更新,这样就需要先查询一次,再执行更新.
    忽然想到有没有可能直接对它进行更新,每次得到更新前的相反值.
    首先想到的是用mid,后来发现mid再sql语句中不被支持.
    资料显示:"mid是pb的函数,一般的数据库应该游substr函数"

    后来找到"SUBSTRING"这个函数,用法何mid一样,于是就有了下面这种方法.

    update anketo1 set fb = substring('10',fb+1,1) WHERE id =5

    后来问了BM,BM说直接取反
    update anketo1 set fb = ~ fb WHERE id =5
    我告诉了BM用substring也可以.
    BM说:"这家伙厉害,这也能想出,这属于邪门武功."

    最后又想到用ABS取绝对值也可以
    update anketo1 set fb = abs(fb-1)
    我觉得不管是什么武功,能制胜就是好的武功.
    以上三种方法都是不错的方法.

    附:
    SUBSTRING  
    返回字符、binary、text   或   image   表达式的一部分。有关可与该函数一起使用的有效   Microsoft®   SQL   Server™   数据类型的更多信息,请参见数据类型。        
    语法  
    SUBSTRING   (   expression   ,   start   ,   length   )      
    参数  
    expression  
       
    是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。
       
    start      
    是一个整数,指定子串的开始位置。     
    length     
    是一个整数,指定子串的长度(要返回的字符数或字节数)。

    Abs 函数
    返回数字的绝对值。

    Abs(number)

    number 参数可以是任意有效的数值表达式。如果 number 包含 Null,则返回 Null;如果是未初始化变量,则返回 0。

    说明
    数字的绝对值是其无符号的数值大小。例如,Abs(-1) 和 Abs(1) 都返回 1。

    下面示例利用 Abs 函数计算数字的绝对值:
    Dim MyNumber
    MyNumber = Abs(50.3 )        '返回 50.3。
    MyNumber = Abs(-50.3)       '返回 50.3。

  • 相关阅读:
    3、选择排序(最小值/最大值)
    2、冒泡排序
    1、快速排序
    Stream操作
    1. 两数之和
    Mysql修改字段类型修改
    获取节假日
    mysql 前缀 + 编号 补0
    一口气说出 6种@Transactional注解的失效场景
    Activiti最全入门教程(基于Eclipse插件开发)
  • 原文地址:https://www.cnblogs.com/scgw/p/1913433.html
Copyright © 2011-2022 走看看