sql server的一个有趣的bit位运算分享
sql server中没有bool类型,而是用bit类型来表示bool值,估计是为了节省存储空间。
可是要想实现取反操作似乎就麻烦写了,比如类似下面这样的语句是不行的:update category set visible=not visible where id=1,因为visible是bit类型,而不是bool类型。
一个很有趣的问题发生了,我们发现在Sql Server中的bit类型的数据-1可以表示1,于是我们可以将上面的语句改成:
update category set visible=visible-1 where id=1
呵呵:当然也可以这样写了:update category set visible = 1-visible where id=1,这样就没有-1了,就只有0和1了。
相关推荐
-
关于SQL Server中bit类型字段增删查改的一些事
前言 本文主要给大家介绍了关于SQL Server中bit类型字段增删查改的一些事,话说BIT类型字段之前,先看"诡异"的一幕,执行Update成功,但是查询出来的结果依然是1,而不是Update的2 当别人问起我来的时候,本人当时也是处于懵逼状态的,后面联想具体的业务突然想起来这个字段是bit类型的 如果把这个现象跟BIT类型字段连续起来就不觉得奇怪了. 废话不多,直接上代码看结果就好了. 先建一个测试表 CREATE TABLE TestBIT ( Id INT IDENTITY(
-
sqlserver 增删改查一些不常用的小技巧
一 Insert 语句 1.在数据中只插入默认值: insert into [DBTrain].[dbo].[log_info] default values 2.在可以为null 的字段中,如果要设置null,可以按下[Ctrl+0],注意是零不是o,如果要恢复修改前的值按[Esc] 二 Update 语句 可以更新前几条或某个百分比的数据 update top(3) [log_info] set info1 = '1001' update top(80) percent [log_info]
-
sql server的一个有趣的bit位运算分享
sql server中没有bool类型,而是用bit类型来表示bool值,估计是为了节省存储空间. 可是要想实现取反操作似乎就麻烦写了,比如类似下面这样的语句是不行的:update category set visible=not visible where id=1,因为visible是bit类型,而不是bool类型. 一个很有趣的问题发生了,我们发现在Sql Server中的bit类型的数据-1可以表示1,于是我们可以将上面的语句改成: update category set visible
-
多列复合索引的使用 绕过微软sql server的一个缺陷
然而,微软sql server在处理这类索引时,有个重要的缺陷,那就是把本该编译成索引seek的操作编成了索引扫描,这可能导致严重性能下降 举个例子来说明问题,假设某个表T有索引 ( cityid, sentdate, userid), 现在有个分页列表功能,要获得大于某个多列复合索引V0的若干个记录的查询,用最简单表意的方式写出来就是 V >= V0, 如果分解开来,就是: cityid > @cityid0 or (cityid = @cityid0 and (sentdate >
-
SQL SERVER 与ACCESS、EXCEL的数据转换方法分享
在Transact-SQL语句中,我们主要使用OpenDataSource函数.OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助.利用下述方法,可以十分容易地实现SQL SERVER.ACCESS.EXCEL数据转换,详细说明如下: 一.SQL SERVER 和ACCESS的数据导入导出 常规的数据导入导出: 使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤: 1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Tra
-
SQL Server使用一个语句块批量插入多条记录的三种方法
我们在日常操作中,免不了对数据库的某张表,一次性的要插入多条记录,但是首先想到的就是复制,粘帖N多重复的INSERT INTO 语句,万一某一个少了一个分号,或多个逗号之类的,产生错误,要找起来可就费尽了,既浪费时间,又耽误工作. 除了上面所说的方法外,其实还有二中方法,相比较起来要比之前那个要简洁. 首先是之前那个方法: 复制代码 代码如下: INSERT INTO MyTable(ID,NAME) VALUES(1,'123'); INSERT INTO MyTable(ID,NAME
-
Sql Server中一个表2个字段关联同一个表(代码解决)
复制代码 代码如下: select a.man_id,man_name,d.sex_name,zw_name,c.money from man as a left join zw as b on a.zw_id=b.zw_id left join zw as c on a.man_id=c.man_id -- 同时关联zw字段,通过表别名区别开 left join xb as d on c.sex_id=d.sex_id
-
在sql Server自定义一个用户定义星期函数
文件:.wmv:大小:19,535KB:长度:00:26:39. 下载地址:SqlFunction_udf_Week.rar以下内容于20120105更新: 2012年刚到,开发的软件使用这个函数发现bug.2012年第一周应该是2012-01-01至2012-01-07,但此函数却把2012-01-08至2012-01-14当作第一周. 就此bug对此函数修改如下: 复制代码 代码如下: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTE
-
SQL Server中将查询结果转换为Json格式脚本分享
脚本源码: 复制代码 代码如下: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE[dbo].[SerializeJSON]( @ParameterSQL AS VARCHAR(MAX) ) AS BEGIN DECLARE @SQL NVARCHAR(MAX) DECLARE @XMLString VARCHAR(MAX) DECLARE @XML XML DECLARE @Paramlist NVARCH
-
Sql Server中常用的6个自定义函数分享
在日常应用中,往往根据实际需求录入一些值,而这些值不能直接使用,所以Sql中经常会对字段值进行一些常规的处理.这里搜集了(提取数字.英文.中文.过滤重复字符.分割字符的方法),方便日后查询使用. 一.判断字段值是否有中文 --SQL 判断字段值是否有中文 create function fun_getCN(@str nvarchar(4000)) returns nvarchar(4000) as begin declare @word nchar(1),@CN nvarchar(4000) s
-
SQL Server数据库中伪列及伪列的含义详解
SQL Server中的伪列 下午看QQ群有人在讨论(非聚集)索引的存储,说,对于聚集索引表,非聚集索引存储的是索引键值+聚集索引键值:对于非聚集索引表,索引存储的是索引键值+RowId,这应该是一个常识,对此不作具体详细阐述. 这里主要是提到的RowId引起了一点思考. 那么,这个RowId是个什么玩意?能不能更加直观一点来看看RowId的信息?代表什么含义?这个当然也是可以的. Oracle中的表中有一个伪列的概念,就是在查询表的时候加上select rowid,* from Table,会
-
将Access数据库移植到SQL Server
随着用户对于企业级高性能数据库的需求的增长,用户时常要从Microsoft Access Jet引擎的文件-服务器环境下转换到Microsoft SQL Server的客户-服务器环境.Microsoft Office 2000中的Access 2000 Upsizing Wizard可实现将数据表和查询转移到SQL Server 7.0中.如果您用的是Access的较早的版本,您可以先将它升级为Access 2000,然后再使用其中的Upsizing Wizard,从而将您的应用移植到SQL
随机推荐
- Java 中的Printstream介绍_动力节点Java学院整理
- 正则表达式检查来访IP是否合法的实际应用
- MongoDB如何查询耗时记录的方法详解
- MySQL 从一张表update字段到另外一张表中
- 关于Apache shiro实现一个账户同一时刻只有一个人登录(shiro 单点登录)
- 如何让批处理程序启动的时候最小化
- 史上最详细的CocoaPods安装教程(图文)
- java web开发之实现购物车功能
- C++实现数字转换为十六进制字符串的方法
- javascript+HTML5自定义元素播放焦点图动画
- C#调用mmpeg进行各种视频转换的类实例
- 用计算列实现移动加权平均算法
- 跟着JQuery API学Jquery 之三 筛选
- jQuery下的动画处理总结
- JQuery控制图片由中心点逐渐放大效果
- JavaScript整除运算函数ceil和floor的区别分析
- js输出数据精确到小数点后n位代码
- JavaScript DOM学习第六章 表单实例
- javascript实现汉字转拼音代码分享
- IP策略实现服务器禁止Ping