SQL |空函数
以下是 SQL 中定义的 NULL 函数:
- ISNULL(): ISNULL函数在 SQL Server 和 MySQL 中有不同的用途。在 SQL Server 中,ISNULL()函数用于替换 NULL 值。
句法:SELECT column(s), ISNULL(column_name, value_to_replace) FROM table_name;
例子:
考虑以下 Employee 表,查询:求所有Employee的salary之和,如果没有某个员工的Salary(或NULL值),则使用salary为10000。
SELECT SUM(ISNULL(Salary, 10000) AS Salary FROM Employee;
输出:
在 MySQL 中,ISNULL()函数用于测试表达式是否为 NULL。如果表达式为 NULL,则返回 TRUE,否则返回 FALSE。
句法:SELECT column(s) FROM table_name WHERE ISNULL(column_name);
例子:
考虑以下 Employee 表,查询:获取表中工资可用的所有员工的姓名(非NULL)。
SELECT Name FROM Employee WHERE ISNULL(Salary);
输出:
- IFNULL():此函数在 MySQL 中可用,在 SQL Server 或 Oracle 中不可用。这个函数有两个参数。如果第一个参数不为 NULL,则函数返回第一个参数。否则,返回第二个参数。此函数通常用于将 NULL 值替换为另一个值。
句法:SELECT column(s), IFNULL(column_name, value_to_replace) FROM table_name;
例子:
考虑以下 Employee 表,查询:求所有Employee的salary之和,如果没有某个员工的Salary(或NULL值),则使用salary为10000。
SELECT SUM(IFNULL(Salary, 10000) AS Salary FROM Employee;
输出:
- COALESCE(): SQL 中的 COALESCE函数返回其参数中的第一个非 NULL 表达式。如果所有表达式的计算结果为 null,则 COALESCE函数将返回 null。
句法:SELECT column(s), CAOLESCE(expression_1,....,expression_n) FROM table_name;
例子:
考虑以下 Contact_info 表,查询:获取每个员工的姓名、联系电话。
SELECT Name, COALESCE(Phone1, Phone2) AS Contact FROM Contact_info;
输出:
- NULLIF(): NULLIF函数有两个参数。如果两个参数相等,则返回 NULL。否则返回第一个参数。
句法:SELECT column(s), NULLIF(expression1, expression2) FROM table_name;
例子:
考虑下面的销售表,SELECT Store, NULLIF(Actual, Goal) FROM Sales;
输出: