MySql 里的IFNULL、NULLIF和ISNULL用法
2012年05月21日 ⁄ 数据库 ⁄ 暂无评论
今天用到了MySql里的isnull才发现他和MSSQL里的还是有点区别,现在简单总结一下:
mysql中isnull,ifnull,nullif的用法如下:
isnull(expr) 的用法:
如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。
mysql> select isnull(1+1);
-> 0
mysql> select isnull(1/0);
-> 1
使用= 的null 值对比通常是错误的。
isnull() 函数同 is null比较操作符具有一些相同的特性。请参见有关is null 的说明。
IFNULL(expr1,expr2)的用法:
假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1;
否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。
mysql> SELECT IFNULL(1,0);
-> 1
mysql> SELECT IFNULL(NULL,10);
-> 10
mysql> SELECT IFNULL(1/0,10);
-> 10
mysql> SELECT
IFNULL(1/0,'yes');
-> 'yes'
IFNULL(expr1,expr2)的默认结果值为两个表达式中更加“通用”的一个,顺序为STRING、 REAL或
INTEGER。假设一个基于表达式的表的情况, 或MySQL必须在内存储器中储存一个临时表中IFNULL()的返回值:
CREATE TABLE tmp SELECT IFNULL(1,'test') AS test;
在这个例子中,测试列的类型为 CHAR(4)。
NULLIF(expr1,expr2) 的用法:
如果expr1
= expr2 成立,那么返回值为NULL,否则返回值为 expr1。这和CASE WHEN expr1 = expr2
THEN NULL ELSE expr1 END相同。
mysql> SELECT
NULLIF(1,1);
-> NULL
mysql> SELECT NULLIF(1,2);
-> 1
如果参数不相等,则 MySQL 两次求得的值为 expr1 。
转自:http://www.cnblogs.com/JuneZhang/archive/2010/08/26/1809306.html
分享到:
相关推荐
mysql中isnull,ifnull,nullif的用法如下: isnull(expr) 的用法:如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。mysql> select isnull(1+1);-> 0mysql> select isnull(1/0);-> 1使用= 的null ...
在MySQL数据库中,处理NULL值是一项...总的来说,`ISNULL()`、`IFNULL()`和`NULLIF()`是MySQL处理NULL值的三种主要方法,它们在不同的场景下各有所长,熟练掌握这些函数的使用,能够帮助我们更好地管理数据库中的数据。
**SQL Server的ISNULL函数** `ISNULL`函数在SQL Server中用于检查一个表达式是否为NULL,并根据需要替换为指定的值。其语法结构如下: ```sql ISNULL(check_expression, replacement_value) ``` 1. **check_...
在MySQL中isnull()函数不能作为替代null值! 如下: 首先有个名字为business的表: SELECT ISNULL(business_name,'no business_name') AS bus_isnull FROM business WHERE id=2 直接运行就会报错: 错误代码...
SQL Server 中的 isnull() 函数可以判断某个值是否为空,而在 MySQL 中,需要使用 ifnull() 函数来判断某个值是否为空。需要注意的是,MySQL 也有 isnull() 函数,但是它的作用不同于 SQL Server 的 isnull() 函数。...
在 SQL Server 中,IFNULL 函数用于返回第一个参数不为空的值,而在 MySql 中,IFNULL 函数被称为 ISNULL 函数。例如,在 SQL Server 中,我们可以使用 IFNULL 函数来返回一个默认值,如果某个字段为空的话:`SELECT...
3. **NULLIF**:这个函数用于将一个表达式的结果与第二个参数比较,如果相等,则返回`NULL`,否则返回第一个表达式。在某些情况下,可以用来避免`NULL`值的产生。 4. **IS NULL** 和 **IS NOT NULL**:这两个是用于...
1. **IFNULL() 与 ISNULL() 函数** - MySQL 使用 `IFNULL()` 函数来检查某个值是否为 NULL,如果为 NULL,则返回指定的替代值。 - SQL Server 使用 `ISNULL()` 函数,作用相同,但语法结构略有不同。 2. **变量...
* `ISNULL` 函数:Sql Server 使用 `ISNULL` 函数,而 MySql 使用 `IFNULL` 函数。 * `GETDATE` 函数:Sql Server 使用 `GETDATE` 函数,而 MySql 使用 `NOW` 函数。 * `NEWID` 函数:Sql Server 使用 `NEWID` 函数...
在SQL语言中,`NULL`是一个特殊的值,它表示未知或者未定义。处理`NULL`值时,需要注意其与...在MySQL中,使用`IS NULL`和`IS NOT NULL`来处理`NULL`值,同时了解相关的函数和约束,能帮助我们更有效地管理和操作数据。
ISNULL()、NVL()、IFNULL()和COALESCE()都可以根据具体数据库系统选择使用,它们的主要目的是确保在遇到NULL值时能够提供一个合理的默认值或替代值,从而保证查询结果的准确性和完整性。在实际工作中,理解并熟练...
在MySQL数据库中,查询空值可以使用IFNULL函数、IS NULL或ISNULL函数。IFNULL函数的执行速度最高,例如: ```sql SELECT u.userCode, u.userName, IFNULL(u.gender, '无性别') AS '性别', TIMESTAMPDIFF(YEAR, u...
在SQL Server中,`COALESCE`函数的工作原理与MySQL类似,但在性能比较上,有时`ISNULL`可能会比`COALESCE`更快,但具体使用哪个取决于具体场景和需求。 总之,`COALESCE`函数是数据库查询中的一个强大工具,能够...
SQL Server 提供 `isnull()` 函数,MySQL 则有 `ifnull()`。MySQL 也有一个 `isnull()` 函数,但其功能与 SQL Server 不完全相同。 4. **获取当前日期和时间** SQL Server 中的 `getdate()` 对应于 MySQL 的 `now...
20. **NULL 处理函数**: MySQL 的 `ifnull()` 函数与 SQLServer 的 `isnull()` 函数功能相似,用于处理 NULL 值。 21. **变量定义**: 在 MySQL 存储过程中定义变量时,不需要使用 `@` 符号。 22. **语句结束符**: ...
总的来说,根据具体需求和情况,你可以选择使用`IFNULL`、`COALESCE`或`IF`函数来处理LEFT JOIN后可能出现的NULL值,使查询结果更加符合预期。在处理大量数据和复杂查询时,理解并熟练运用这些函数对于优化SQL查询和...