ISNULL与CASE函数
假如有数据表是这样定义的:
CREATE TABLE TableA
(
ID int PRIMARY KEY,
Flag char
)
INSERT INTO TableA(ID,Flag) VALUES (1,'0')
INSERT INTO TableA(ID,Flag) VALUES (2,'')
而我们需要显示的页面不能为空,刚开始我想到了ISNULL函数,就把查询语句写成了下面的样子:
SELECT ID,ISNULL(Flag,0) AS Flag FROM TableA
但是发现貌似ISNUll函数不起作用了,于是我就想到了还有一个CASE函数:
SELECT ID ,CASE Flag
WHEN null THEN 0
ELSE Flag
END
FROM TableA
得到的结果是我想要的,在第二行的第二个单元格里也显示的是‘0’
那为什么 ISNULL 函数不起作用呢,后来发现我翻了个严重的错误,把空白和NULL搞乱了,我的在第二行的第二个单元格里存储的是空白字符而非NULL,这样的话问题又出来了,那为什么CASE函数起作用了呢?仔细观察后发现,“WHEN null THEN 0”中的‘0’是数值型,而‘ELSE Flag’中的‘Flag’是字符型,于是这让SQL Server做出了错误的判断,具体的SQL Server怎样的处理我也不清楚,最后写出正确的查询语句:
SELECT ID ,CASE Flag
WHEN '' THEN '0'
ELSE Flag
END
FROM TableA
转载于:https://www.cnblogs.com/jjbery/archive/2009/07/15/1524028.html
ISNULL与CASE函数相关推荐
- Oracle HowTo:如何使用Oracle case函数
通过实例简要介绍case函数的用法. 1.创建测试表: DROP SEQUENCE student_sequence; CREATE SEQUENCE student_sequence START W ...
- Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop()、dropna()、isna()、isnull()、fillna())函数详解之详细攻略
Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop().dropna().isna().isnull().fillna())函数详解之详细攻略 目录 pandas中缺 ...
- oracle函数 case,oracle的case函数和case控制结构 (摘)
oracle的case函数和case控制结构 =========================================================== 作者: zhouwf0726(ht ...
- Sql Server中Case函数的使用(上篇)----转载
Case具有两种格式.简单Case函数和Case搜索函数. 代码 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' E ...
- mysql case函数吗_mySQL case函数
语法 CASE 字段名 WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 ... [ ELSE 结果N ] END 条件可以是一个数值或公式.ELSE子句不是必须的. 还有一种写 ...
- oracle实现mysql的if_oracle中decode函数 VS mysql中的if函数和case函数
oracle中有decode函数,如下: select sum(decode(sex,'男',0,1)) 男生数 from school: 统计男生数目,含义为:decode()中sex字段为男时,用 ...
- MSSQL中使用CASE函数来灵活返回结果
从数据库中SELECT出数据后需要根据返回的值输入不同字符时可在查询时使用CASE函数. 比如 用户表的 用户类型 在数据库中是用的GroupID字段来表示,可以这样来查询: select id,us ...
- 【MySQL】MySQL的IFNULL()、ISNULL()、NULLIF()函数用法说明
文章目录 一.IFNULL() 函数 二.ISNULL() 函数 三.NULLIF() 函数 四.总结 五.相关推荐 一.IFNULL() 函数 MySQL IFNULL 函数是 MySQL 控制流函 ...
- SQL语句--CASE函数写法的简单举例,及应用
SQL语句–CASE函数写法的简单举例,及应用 ---case函数的基本结构:case when...then...else... ----可以写也可以不写,按实际需求end [举个栗子_1] eg1 ...
最新文章
- 别再用 kill -9 了,这才是微服务上下线的正确姿势!
- 程序员颈椎病康复秘籍
- Centos7.2部署各类服务
- java集合租车_Java入门第二季 租车系统
- 百度云世界里的“七种武器”:PCS、BAE、Site App、ScreenX等
- USACO-Section1.4 Prime Cryptarithm (搜索)
- Fantom已开始网络升级,大约需2个小时
- 随机初始化(代码实现)
- 论文阅读:Semantic Human Matting
- Intellij Idea15开发Web网站
- 怎样追求心仪的女孩子
- ucinet计算聚类系数大于1怎么办_UCINET 6
- 金蝶基础资料中物料信息中的计价方法详细解释!小白不能让客户虎住,多多了解
- 2019年一线城市程序员工资大调查
- [No0000134]C#中的委托,匿名方法和Lambda表达式
- spring事务的传播行为的讲解(笔记 侵删)
- php登陆界面点登陆没有反应,ThinkPHP5实战的登录界面的登陆按钮点击之后没有任何反应怎么解决?...
- oracle rowid与rownum的使用
- 【Java容器】Java容器入门教程
- linux 文件格式latin1,Linux查看文件编码格式
热门文章
- 我发现了一个价值8500美元的 HackerOne 平台漏洞
- Cannot assign to read only property 'exports' of object '#Object'
- 【leetcode】931. Minimum Falling Path Sum
- AR VR或将彻底变革广告营销行业
- java对象--多态的好处
- IBM交付第25000个高端磁盘存储方案
- 对客户端树控件的包装
- 开源信息系统开发平台之OpenExpressApp框架 1.1 春节飞虎版发布
- sip消息类型和消息代码详解-转
- c语言函数游戏,C语言做游戏常用到一些函数大全 2011.doc