SqlServer2005 查询 第六讲 null
2024-09-01 18:38:51
今天们来讲sql命令中的这个null参数
null
- null: 可以理解成【没有值,空值】的意思
注意以下几点
- --1、零和null是不一样的,null表示空值,而零表示的一个确定的值
--2、null不能参与的运算 <> , != , =
--3.null可以参与的运算符是is ,not is
例如
- 这里所有的操作都是在scott(库)中的emp表做演示
comm 表示的是emp表中的这个奖金字段。
select * from emp where commm <> null; //-- 错误
select * from emp where comm != null; //--错误
select * from emp where comm = null; //-- 错误
select * from emp where comm is null; //--正确,表示的是输出奖金为空的员工的信息
select * from emp where comm not is null; //-- 正确,表示的是输出奖金不为空的员工的信息
- 4.任何数据类型都允许为null
eg:
create table test(name nvarchar(20),
cnt int,
ridi datetime)
insert into test values(null,null,null) //这些都是成立的,所以任何类型都允许为空。
//这些比较好理解的东西,我就不用图片进行展示了
- 5、任何数字与null参与数学运算结果永远是null
eg:
请输出每个员工的年薪【这里的年薪的算法等于sal(月薪)*12+comm(奖金)】
注意我们的emp表中comm(奖金)这一个字段的值有null(空值)
// --我们先来演示一个错误的sql命令的写法
select comm,sal*12+comm “年新” from emp
//-- 这时我们会发现comm为null的字段,年薪这个计算列的字段就会为null(空值)
//-- 所以任何数字与null参与数学运算结果永远是null
下面这个图片是上面这条sql命令所执行的结果
那么这个题的sql命令应该怎么写呢
select comm,sal*12+isnull(comm,0) "年薪" from emp
// -- isnull(comm,0)表示的是如果comm是null,就返回零否者返回comm的值。
下面这个图片是上面这条sql命令所执行的结果
从图中可以看见不管comm(奖金)这个字段的值是否为空,这个计算列的年薪字段都有值
今天这一讲就到这里,下一讲我们来说 order by
如果还有什么不懂的,可以加我qq485536603
最新文章
- php,nginx重启
- ASP.NET正则表达式(URL,Email)
- HttpWebRequest请求时无法发送具有此谓词类型的内容正文。
- 在IOS输入框中 键盘上显示“搜索”
- C# const与static的理解
- initWithNibName与viewDidLoad的执行关系以及顺序
- SA / SAM 题目集
- Linux之Redis安装
- Java 11 快要来了,编译 &; 运行一个命令搞定!
- 环回接口---loopback
- delphi加载ADOQUERY
- MySQL表类型和存储引擎
- Ubuntu下安装qq方法及疑难问题解决
- spring cloud 微服务架构 简介
- 【51Nod】1920 空间统计学 状压DP
- VScode 安装必备
- Linq-分页查询
- UVA-10806 Dijkstra, Dijkstra. (最小费用流,网络流建模)
- Windows Server 2012 R2如何编辑hosts文件
- Codeforces Round #165 (Div. 1) Greenhouse Effect(DP)
热门文章
- JDBC-第1篇-基础
- Web前端助手-功能丰富的Chrome插件
- swoole与php协程实现异步非阻塞IO开发
- 05jmeter正则表达式
- python3.8安装flask出现错误“ModuleNotFoundError: No module named &#39;_ctypes&#39;”
- 数组转换成List集合
- (乱入)FingerGesture
- iOS 原生库对 https 的处理
- JAVA中的NIO (New IO)
- MySQL字符集与排序规则总结