首先看看SQL SERVER 联机丛书的信息,其中我们该注意的地方我用红字标出:
ISNULL
使用指定的替换值替换 NULL。
语法
ISNULL ( check_expression , replacement_value )
参数
check_expression
将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。
replacement_value
在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。
返回类型
返回与 check_expression 相同的类型。
注释
如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。
NULLIF
如果两个指定的表达式相等,则返回空值。
语法
NULLIF ( expression , expression )
参数
expression
常量、列名、函数、子查询或算术运算符、按位运算符以及字符串运算符的任意组合。
返回类型
返回类型与第一个 expression 相同。
如果两个表达式不相等,NULLIF 返回第一个 expression 的值。如果相等,NULLIF 返回第一个 expression 类型的空值。
注释
如果两个表达式相等且结果表达式为 NULL,NULLIF 等价于 CASE 的搜索函数。
从以上的红字信息我们可以发现:
1、两个函数的返回值都是特定类型的,就算是空值,也是特定类型的,也就是说是特定的数据类型和长度(特别是字符串类型的长度)的。
2、使用两个函数的组合可以让SQL代码精简并可替代Case语句
下面给出一些示例供大家参考,请大家在使用中注意:
SELECT HopeBe_0 = ISNULL(NULLIF('',''),0)
--返回 *
--说明:显然这里已经违反了 ISNULL 的 要求了(红字部分),
--且0转成字符串的长度为1,而''的长度为0
SELECT HopeBe_0 = ISNULL(NULLIF(' ',' '),0)
--返回 0
--说明:这里虽然已经违反了 ISNULL 的 要求了(红字部分),
--但是0转成字符串的长度为1,而' '的长度为也为1
SELECT HopeBe_Empty = ISNULL(ISNULL('',''),0)
--返回 ''
--说明:这个可以理解吧
SELECT HopeBe_n_0 = ISNULL(NULLIF('',''),'0000')
--返回 ''
--说明:这个比较经典,请往下看
SELECT HopeBe_n_0 = ISNULL(NULLIF('x','x'),'0000')
--返回 0
SELECT HopeBe_n_0 = ISNULL(NULLIF('xx','xx'),'0000')
--返回 00
SELECT HopeBe_n_0 = ISNULL(NULLIF('xxx','xxx'),'0000')
--返回 000
SELECT HopeBe_n_0 = ISNULL(NULLIF('xxxx','xxxx'),'0000')
--返回 0000
SELECT HopeBe_n_0 = ISNULL(NULLIF('xxxxx','xxxxx'),'0000')
--返回 0000
至于替代 case 的示例靠大家领会,我只给了我经常用的小片:
... IsNull(NullIf(count(ID),0),1)
--说明:这是为了防止除0和除NULL
分享到:
相关推荐
在SQL Server中,ISNULL和NULLIF是两个非常重要的函数,它们主要用于处理NULL值,确保数据的完整性和一致性。在数据库操作中,NULL值经常会出现,尤其是在进行比较、计算或者查询时,理解并正确使用这两个函数是提升...
用到了MySql里的isnull才发现他和MSSQL里的还是有点区别,现在简单总结一下: mysql中isnull,ifnull,nullif的用法如下: isnull(expr) 的用法:如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。...
本文将详细介绍三个用于处理NULL值的关键函数:IFNULL、NULLIF和ISNULL。 首先,`ISNULL()`函数用于检查一个表达式是否为NULL。如果expr是NULL,`ISNULL(expr)`返回1,否则返回0。例如: ```sql mysql> SELECT IS...
ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数的几种用法,
本文实例讲述了mysql中null(IFNULL,COALESCE和NULLIF)相关知识点。分享给大家供大家参考,具体如下: 在MySQL中,NULL值表示一个未知值,它不同于0或空字符串”,并且不等于它自身。 我们如果将NULL值与另一个...
public static boolean isNull(Object a) { String b = toString(a); return isNull(b); } public static boolean isNull(String a) { a = ("" + a).trim(); if (a == null || "".equals(a) || "null".equals...
本文将深入探讨SQL Server的`ISNULL`函数和MySQL的`IFNULL`函数,帮助读者理解和掌握它们的用法。 **SQL Server的ISNULL函数** `ISNULL`函数在SQL Server中用于检查一个表达式是否为NULL,并根据需要替换为指定的...
总之,Oracle的NVL、NVL2和NULLIF以及SQL Server的ISNULL都是处理NULL值的关键函数。了解它们的差异和使用条件,有助于在不同数据库环境下编写更加灵活和适应性强的SQL代码。在实际开发中,选择哪个函数取决于具体...
在SQL Server中,ISNULL()...在编写SQL查询和与数据库交互的任何地方,理解并正确使用ISNULL()都是提高代码质量、避免潜在错误的重要技巧。无论是简单的数据展示还是复杂的业务逻辑,ISNULL()都是一个不可或缺的工具。
在这种情况下,`ISNULL()`函数可以用来检查并替换这些空值,以确保数据的完整性和一致性。 `ISNULL()`函数的语法结构如下: ```sql ISNULL ( check_expression , replacement_value ) ``` 这里的参数: - `check_...
总之,Python pandas库中的`isnull()`函数是检测和处理缺失值的核心工具。它能帮助我们快速定位数据中的空值,结合`any()`和`sum()`等其他函数,我们可以进一步了解数据的完整性,从而为后续的数据清洗和分析打下...
本文将深入探讨`IsEmpty`、`IsNull`以及`IsArray`等函数的用法,并结合`IsDate`和`IsNumeric`来讨论数据类型的判断。 首先,`IsEmpty`函数用于检查变量是否已初始化或赋值。在示例中,如果`Dim v As Variant`后的`v...
总的来说,理解并熟练运用`ISNULL`函数对于在SQL Server中处理含有NULL值的数据至关重要,它可以避免因NULL值引起的计算错误和统计异常,提高查询和更新的准确性。在编写涉及NULL值的查询时,考虑使用`ISNULL`以确保...
Oracle SQL 判断值为空OrNull 判断 Oracle SQL 中判断值为空...在 Oracle 和 SQL Server 中,我们可以使用 `NVL` 和 `ISNULL` 函数来判断值为空或 Null,並使用 `isNull` 和 `is not null` 来判断值是否为空或 Null。
MySQL中的`NOT IN`, `LEFT JOIN`, `IS NULL`, 和 `NOT EXISTS` 是四种不同的SQL查询方式,它们在特定情况下可以实现相似的功能,但实际执行效率可能会有很大差异。本文主要探讨这四种方法在处理大数据量时的性能表现...