一个有趣的SQL命题 用一条语句切换BIT型的真假值
当然,第一反应是用存储过程。判断原来这个字段值,然后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;
update t set b=b-1 where id=1;
select b from t where id=1;
可以发现每次结果就在0和1之间切换,SQL SERVER把-1当做1来处理。
这个需求很容易就解决了。
通常这在一些状态切换(或开关)的地方会用到,在需求中不需要知道切换后的情况。很有趣也很简单,呵呵
相关推荐
-
一个有趣的SQL命题 用一条语句切换BIT型的真假值
当然,第一反应是用存储过程.判断原来这个字段值,然后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 那么用减号呢 复制代码 代码如下: upd
-
一个查询的SQL语句请教,希望能够用一条SQL语句得到结果
各位老大: 我有一个查询的SQL语句请教,希望能够用一条SQL语句得到结果,问题如下: 表X: A B C D ------------------ 北京 广州 1000 10 北京 深圳 1200 20 北京 上海 500 30 北京 天津 300 40 北京 河南 800 20
-
SQL中遇到多条相同内容只取一条的最简单实现方法
SQL中经常遇到如下情况,在一张表中有两条记录基本完全一样,某个或某几个字段有些许差别, 这时候可能需要我们踢出这些有差别的数据,即两条或多条记录中只保留一项. 如下:表timeand 针对time字段相同时有不同total和name的情形,每当遇到相同的则只取其中一条数据,最简单的实现方法有两种 1.select time,max(total) as total,name from timeand group by time;//取记录中total最大的值 或 select time,min(
-
SQL查找某一条记录的方法
SQL查找第n条记录的方法: select top 1 * from table where id not in (select top n-1 id from table) temptable0 SQL查找第n条开始的m条记录的方法: select top m * from table where id not in (select top n-1 id from table) temptable0) (注:表中必须有一个唯一值字段才可适用此方法.)
-
一个 20 秒 SQL 慢查询优化处理方案
目录 1.背景 2.复杂SQL语句的构成 3.关联查询 4.子查询 5.耗时在哪? 6.问题定位 7.初步断定 9.再进一步验证 10.解决方案 11.另外一个需要注意的点 1.背景 页面无法正确获取数据,经排查原来是接口调用超时,而最后发现是因为SQL查询长达到20多秒而导致了问题的发生.这里,没有高深的理论或技术,只是备忘一下经历和解读一些思想误区. 2.复杂SQL语句的构成 这里不过多对业务功能进行描述,但为了突出问题所在,会用类比的语句来描述当时的场景 复杂的SQL语句可以表达如下: S
-
SQLServer 2008中SQL增强之三 Merge(在一条语句中使用Insert,Update,Delete)
SQL Server 2008提供了一个增强的SQL命令Merge,用法参看MSDN:http://msdn.microsoft.com/zh-cn/library/bb510625.aspx 功能:根据与源表联接的结果,对目标表执行插入.更新或删除操作.例如,根据在另一个表中找到的差异在一个表中插入.更新或删除行,可以对两个表进行同步. 我们看一个例子,假如,有一总产品列表,一个分店产品列表,需要从分店添加产品时更新总产品列表. 总产品表,分店产品表结构完全一致: 复制代码 代码如下: if
-
firebug的一个有趣现象介绍
复制代码 代码如下: var obj = {length:0,splice:function(){}} console.log(obj) 猜猜上面会打印出啥? 没错,打印出来的看起来是一个空数组... 在FIREBUG里如果一个对象同时拥有length属性和splice方法,就会被firebug显示为数组的形式... 如果以前注意过的话就会发现JQUERY就是这么写的,通过选择器打印出来的看起来跟数组一样. 一直以来我都很好奇为毛返回的数组,但是却有数组根本没有的方法,也没有数组该有的方法,比如
-
Python内置函数Type()函数一个有趣的用法
今天在网上看到type的一段代码 ,然后查了一下文档,才知道type还有三个参数的用法. http://docs.python.org/2/library/functions.html#type 以前只是知道type可以检测对象类型.然后发现了一个有趣的用法. 复制代码 代码如下: def println(self): a = 1 + 1 print "%s,%s" % (self.aa, a) A = type('A',(),{'aa':'print a', 'println': p
-
一个简单的SQL 行列转换语句
一个简单的SQL 行列转换 Author: eaglet 在数据库开发中经常会遇到行列转换的问题,比如下面的问题,部门,员工和员工类型三张表,我们要统计类似这样的列表 部门编号 部门名称 合计 正式员工 临时员工 辞退员工 1 A 30 20 10 1 这种问题咋一看摸不着头绪,不过把思路理顺后再看,本质就是一个行列转换的问题.下面我结合这个简单的例子来实现行列转换. 下面3张表 复制代码 代码如下: if exists ( select * from sysobjects where id =
-
分享一个简单的sql注入
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句.比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到sql注入攻击. 分别输入1,2,3有对应的结果 使用'会报
随机推荐
- PHP接口继承及接口多继承原理与实现方法详解
- 谈谈Ajax原理实现过程
- javascript正则表达式分析第1/2页
- KnockoutJS 3.X API 第四章之数据控制流component绑定
- java匿名内部类实例简析
- hibernate一对多关联映射学习小结
- PHP编写daemon process详解及实例代码
- 收集的php编写大型网站问题集
- PHP和MYSQL实现分页导航思路详解
- 纯JSP+DWR实现三级联动下拉选择菜单实现技巧
- 禁止JS运行的代码
- C# WinForm实现Win7 Aero透明效果代码
- Openresty服务器使用lua脚本写的Hello World简单实例
- jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
- jQuery定义插件的方法
- jquery实现折叠菜单效果【推荐】
- javascript定时变换图片实例代码
- 在Android中 获取正在运行的Service 实例
- C# 超高面试题收集整理
- Android图片等比例缩放和填充屏幕效果