程序员社区

MySQL系列教程 --- 55、MySQL 中的 NULLIF()函数

本节帮助您了解 MySQL NULLIF() 函数。NULLIF 函数是 MySQL 控制流函数的一部分,用于在两个表达式中进行比较。它还有助于防止在 SQL 语句中被零错误除法。

NULLIF 函数接受两个表达式,如果第一个表达式等于第二个表达式,则返回NULL。否则,它返回第一个表达式。

句法

我们可以使用具有以下语法的 NULLIF 函数:

NULLIF (Expression1, Expression2)  

当表达式 1 等于表达式 2 时,它返回 Null。否则,它将返回 expression1。

范围

范围 要求 说明
Expression 1 必需的 它指定用于比较的第一个表达式。
Expression 2 必需的 它指定用于比较的第二个表达式。

MySQL 版本支持

NULLIF 函数可以支持以下MySQL 版本:

  • MySQL 8.0
  • MySQL 5.7
  • MySQL 5.6
  • MySQL 5.5
  • MySQL 5.1
  • MySQL 5.0
  • MySQL 4.1
  • MySQL 4.0

让我们通过以下示例了解MySQL NULLIF() 函数。我们可以直接在SELECT语句中使用 NULLIF 函数。

示例 1

SELECT NULLIF("javaTpoint", "javaTpoint");  

在上面的函数中,MySQL 语句检查第一个表达式是否等于第二个表达式。如果两个表达式相同,则返回 NULL。否则,它将返回第一个表达式。

输出:

NULL

示例 2

SELECT NULLIF("Hello", "404");  

以下 MySQL 语句比较了两个表达式。如果表达式 1 = 表达式 2,则返回 NULL。否则,它将返回 expression1。

输出:

Hello

示例 3

SELECT NULLIF(9,5);  

以下 MySQL 语句比较两个整数值。如果它们相等,则返回 NULL。否则,它返回第一个表达式。

输出:

9

示例 4

在这个例子中,我们将了解 NULLIF() 函数如何防止除以零错误。如果我们运行查询“SELECT 1/0”,那么我们会得到一个错误输出。因此,在这种情况下,我们将使用 NULLIF 函数如下语法。

SELECT 1/NULLIF(0,0);  

输出:

NULL

例 5

让我们创建一个客户表来执行 NULLIF 函数。以下语句在您的数据库中创建一个客户表。

CREATE TABLE 'customer' (  
  'customer_id' INT UNSIGNED NOT NULL AUTO_INCREMENT,  
  'cust_name' VARCHAR(45) NOT NULL,  
  'occupation' VARCHAR(45) NOT NULL,  
  'income' VARCHAR(15) NOT NULL,  
  'qualification' VARCHAR(45) NOT NULL  
);  

现在,您需要将数据插入到表中。要将值插入表中,请运行以下命令。

 INSERT INTO 'myproductdb'.'customer' ('cust_name', 'occupation', 'income', 'qualification') VALUES ('John Miller', 'Developer', '20000', 'Btech');  
INSERT INTO 'myproductdb'.'customer' ('cust_name', 'occupation', 'income', 'qualification') VALUES ('Mark Robert', 'Enginneer', '40000', 'Btech');  
INSERT INTO 'myproductdb'.'customer' ('cust_name', 'occupation', 'income', 'qualification') VALUES ('Reyan Watson', 'Scientists', '60000', 'MSc');  
INSERT INTO 'myproductdb'.'customer' ('cust_name', 'occupation', 'income', 'qualification') VALUES ('Shane Trump', 'Businessman', '10000', 'MBA');  
INSERT INTO 'myproductdb'.'customer' ('cust_name', 'occupation', 'income', 'qualification') VALUES ('Adam Obama', 'Manager', '80000', 'MBA');  
INSERT INTO 'myproductdb'.'customer' ('cust_name', 'occupation', 'income', 'qualification') VALUES ('Rincky Ponting', 'Cricketer', '200000', 'Btech');  

将值插入表中后,执行以下查询。

SELECT * FROM customer;  

它将给出下表:

file

现在,我们将使用 NULLIF 函数根据Btech检查限定列值。表示如果客户职业是Btech,则返回NULL。否则,它返回列值。

SELECT cust_name, occupation, qualification,   
NULLIF (qualification,"Btech") result   
FROM myproductdb.customer;  

输出:

当上述命令成功执行时,它会返回以下输出。

file

赞(0) 打赏
未经允许不得转载:IDEA激活码 » MySQL系列教程 --- 55、MySQL 中的 NULLIF()函数

一个分享Java & Python知识的社区