概述:如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。

NULL 值的处理方式与其他值不同。

NULL 用作未知的或不适用的值的占位符。

注释:无法比较 NULL 和 0;它们是不等价的。

1.SQL中null值的处理:

对于null值,不可以使用 ==  或者这些类似的关系符进行处理。

必须使用:is null 和is not null 进行处理

2.Is null的使用

SELECT * from tb_guide where lvlno is null

3.SQL 中的Isnull() nvl() isfull() coalesce()的使用方法

SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder) FROM Products

在上面的例子中,如果有 "UnitsOnOrder" 值是 NULL,那么结果是 NULL

微软的 ISNULL() 函数用于规定如何处理 NULL 值。

NVL(), IFNULL() 和 COALESCE() 函数也可以达到相同的结果。

在这里,我们希望 NULL 值为 0。

下面,如果 "UnitsOnOrder" 是 NULL,则不利于计算,因此如果值是 NULL 则 ISNULL() 返回 0。

SQL Server / MS Access

SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products

Oracle

Oracle 没有 ISNULL() 函数。不过,我们可以使用 NVL() 函数达到相同的结果:

SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products

MySQL

MySQL 也拥有类似 ISNULL() 的函数。不过它的工作方式与微软的 ISNULL() 函数有点不同。

在 MySQL 中,我们可以使用 IFNULL() 函数,就像这样:

SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products

或者我们可以使用 COALESCE() 函数,就像这样:

SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products

转载于:https://www.cnblogs.com/lovefan/p/3386686.html

SQL之总结(四)---null问题的处理相关推荐

  1. SQL Server之 (四) ADO增删查改 登录demo 带参数的sql语句 插入自动返回行号

    SQL Server之 (四) ADO增删查改  登录demo  带参数的sql语句  插入自动返回行号 自己学习笔记,转载请注明出处,谢谢!---酸菜 1.什么是ADO.NET ADO.NET是一组 ...

  2. 南大通用GBase8s 常用SQL语句(四十)

    南大通用GBase8s 常用SQL语句(四十) DATAFILES 子句 DATAFILES 子句指定当您使用外部表时打开的操作系统文件或管道. DATAFILES 子句 元素 描述 限制 语法 fi ...

  3. sql 语句中的 NULL值

    今天写了这样的代码 DECLARE @atr NVARCHAR(20) SET @atr = NULL IF(@atr = NULL) BEGIN   PRINT 1 END     原本是想打印出1 ...

  4. PL/SQL学习笔记(四)

    这部分主要讲述在PL/SQL中如何访问oracle (一)检索单行数据 在PL/SQL嵌入select语句,使用方法: SELECT select_list INTO variable_name1,v ...

  5. oracle空值判断 =,Oracle,sql server的空值(null)判断

    Oracle,sql server的空值(null)判断 sql server 替换null:isnull(arg,value) 如:select isnull(price,0.0) from ord ...

  6. Oracle和sql语言,SQL语言的四种类型和ORACLE运算符

    数据定义语言(DDL) 数据操作语言(DML) 数据控制语言(DCL) 事务控制语言(TCL) Data Definition Language(DDL) DDL使我们有能力创建或删除表格.也可以定义 ...

  7. oracle sql语句中有关null使用的一点理解

    为什么80%的码农都做不了架构师?>>>    最近在写pl/sql package时,发现了原来使用null时的一些问题, 下面是我的理解,可能有不对的地方,欢迎大家指正. SQL ...

  8. 视频教程-Oracle从入门到精通全套视频教程之SQL与PLSQL(四)-Oracle

    Oracle从入门到精通全套视频教程之SQL与PLSQL(四) Oracle DBA,熟悉Unix操作系统,精通Oracle数据库. 曾任职某大型金融IT公司,负责银行领域数据库构建与运维,维护大量银 ...

  9. SQL语言的四种类型

    SQL语言的四种类型 SQL包含四种程序设计语言类别的语句: 数据定义语言(DDL).数据操作语言(DML).数据控制语言(DCL)和事物控制语言(TCL). Data Definition Lang ...

  10. Oracle数据库SQL语句(四)—子查询(嵌套查询)

    Oracle数据库SQL语句(四) 子查询(嵌套查询) 1.单行子查询 SELECT * FROM stuWHERE ID > (SELECT ID FROM stu WHERE NAME =' ...

最新文章

  1. 我是如何做软件测试项目的?
  2. 程序运行时,内存占用查看
  3. C/C++ 语言获取文件大小
  4. 时间序列数据库的秘密(3)——加载和分布式计算
  5. 英语笔记3(git)
  6. linux禁止u盘自动运行,求设置U盘自动运行和禁止运行的方法。
  7. Spring Boot -Shiro配置多Realm 1
  8. nginx学习文档之一 安装nginx-Linux下安装nginx
  9. 【kafka】Kafka扩容
  10. 因系统因配置问题报错,如何调整(两类 【与外界其他环境相关联】 【★自身配置★】(★关注web.xml★))
  11. 移动安全-java JEB安装使用
  12. 教育技术资源大全(05-11-28)
  13. Fast is better than free: Revisiting adversarial training
  14. XAMPP升级PHP版本的步骤
  15. Monte Carlo Tree Search (MCTS) 蒙特·卡罗尔树搜索
  16. cdn加速的原理及步骤
  17. Proof of Stake-股权证明 系列3
  18. wingide运行两个项目_Wing IDE使用教程:部分调试功能介绍
  19. OPC:服务器开发(一)如何开发OPC Server
  20. 最全动态规划题型详解

热门文章

  1. 人与人之间需要最基本的信任
  2. 精通~Scrum为什么会转型困难
  3. 【NOIP-2017PJ】图书管理员
  4. ASP.NET 使用C#代码设置页面元素中的样式或属性
  5. JavaScript的类型转换
  6. MOON.ORM 3.0 具体使用方法及下载
  7. silverlight DataPager控件
  8. 软件2班36人[扑林作]
  9. 设计模式之-模版模式(Template Pattern)
  10. 洛谷P1217回文质数(特判筛选,取巧判断顺序)