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。

  • 相关阅读:
    Java实现各种内部排序算法
    Java实现堆排序(大根堆)
    Java对象的序列化和反序列化
    Java实现链式存储的二叉查找树(递归方法)
    337. House Robber III(包含I和II)
    318. Maximum Product of Word Lengths
    114. Flatten Binary Tree to Linked List
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    96. Unique Binary Search Trees(I 和 II)
  • 原文地址:https://www.cnblogs.com/scgw/p/1913433.html
Copyright © 2011-2022 走看看