SQL 中带有 NULL 值的 CASE 表达式

SQL 中带有 NULL 值的 CASE 表达式

在本文中,我们将介绍 SQL 中使用 CASE 表达式时处理 NULL 值的情况。我们将了解在 CASE 表达式中如何处理 NULL 值以及使用示例。

阅读更多:SQL 教程

CASE 表达式简介

SQL 中,CASE 表达式用于根据条件进行条件判断并返回相应的结果。它类似于其他编程语言中的 if-else 语句或者 switch 语句,可以根据给定的条件返回不同的值。

CASE 表达式主要有两种格式:
– 简单 CASE 表达式:根据单个表达式的值进行条件判断。
– 搜索 CASE 表达式:根据多个条件的结果进行条件判断。

处理 NULL 值的方法

在进行 CASE 表达式时,我们需要考虑 NULL 值的处理方式。当条件字段的值为 NULL 时,使用普通的等值判断是无法得到结果的。为了处理 NULL 值,可以使用 IS NULL 或 IS NOT NULL 运算符来判断条件字段是否为 NULL。

下面是一个简单示例,展示了如何在 CASE 表达式中处理 NULL 值:

SELECT column1, 
       CASE 
           WHEN column2 IS NULL THEN 'NULL value' 
           ELSE 'Not NULL value' 
       END AS result
FROM table;

在这个示例中,当 column2 的值为 NULL 时,返回 ‘NULL value’,否则返回 ‘Not NULL value’。

使用示例

为了更好地理解如何使用 CASE 表达式处理 NULL 值,我们来看几个示例。

示例1:返回固定值

假设我们有一个学生成绩表,其中包含学生的姓名和成绩。我们希望将成绩字段中的 NULL 值替换为固定值 “未知”,可以使用 CASE 表达式实现:

SELECT name, 
       CASE 
           WHEN score IS NULL THEN '未知' 
           ELSE score 
       END AS score
FROM student;

在这个示例中,当成绩字段的值为 NULL 时,返回 ‘未知’,否则返回实际的成绩值。

示例2:返回计算结果

假设我们有一个订单表,其中包含订单编号、订单日期和订单金额。我们希望计算订单金额的折扣价格,当折扣字段为 NULL 时,默认折扣为 0。可以使用 CASE 表达式实现:

SELECT order_number, 
       order_date, 
       CASE 
           WHEN discount IS NULL THEN order_amount 
           ELSE order_amount * (1 - discount) 
       END AS discount_amount
FROM order;

在这个示例中,当折扣字段的值为 NULL 时,返回订单金额;否则,返回根据折扣计算后的折扣金额。

总结

在本文中,我们介绍了 SQL 中使用 CASE 表达式处理 NULL 值的方法。我们学习了如何判断字段是否为 NULL,并使用 CASE 表达式返回相应的结果。通过示例,我们展示了如何在实际场景中使用 CASE 表达式处理包含 NULL 值的数据。使用 CASE 表达式可以更灵活地处理包含 NULL 值的数据,使查询结果更加符合需求。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程