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
随机推荐
- DOS批处理中%~dp0等扩充变量语法详解
- Android实现从缓存中读取图片与异步加载功能类
- MongoDB系列教程(一):NoSQL起源
- Linux下Tomcat8.0.44配置使用Apr的方法
- springboot开启声明式事务的方法
- 以代码实例总结iOS应用开发中数据的存储方式
- Android 6.0指纹识别App开发案例
- ASP.NET mvc4中的过滤器的使用
- php入门学习知识点五 关于php数组的几个基本操作
- python日志记录模块实例及改进
- Python调用微信公众平台接口操作示例
- C++中继承与多态的基础虚函数类详解
- python基础教程之简单入门说明(变量和控制语言使用方法)
- 让Linux下的cron以秒为单位执行shell脚本的3种方法
- python线程、进程和协程详解
- JS封装cookie操作函数实例(设置、读取、删除)
- Java持久层框架MyBatis简单实例
- 文本、Excel、Access数据导入SQL Server2000的方法
- JavaScript 基础问答二
- Ext JS 实现建议词模糊动态搜索功能