`
pharaohsprince
  • 浏览: 296951 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

Mysql中类似于nvl()函数的ifnull()函数

阅读更多

7.4.8 控制流函数

IFNULL(expr1,expr2)
如果expr1不是NULLIFNULL()返回expr1,否则它返回expr2IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。
mysql> select IFNULL(1,0);        -> 1mysql> select IFNULL(0,10);        -> 0mysql> select IFNULL(1/0,10);        -> 10mysql> select IFNULL(1/0,'yes');        -> 'yes' 
IF(expr1,expr2,expr3)
如果expr1是TRUE(expr1<>0expr1<>NULL),那么IF()返回expr2,否则它返回expr3IF()返回一个数字或字符串值,取决于它被使用的上下文。
mysql> select IF(1>2,2,3);        -> 3mysql> select IF(1<2,'yes','no');        -> 'yes'mysql> select IF(strcmp('test','test1'),'yes','no');        -> 'no'

expr1作为整数值被计算,它意味着如果你正在测试浮点或字符串值,你应该使用一个比较操作来做。

mysql> select IF(0.1,1,0);        -> 0mysql> select IF(0.1<>0,1,0);        -> 1

在上面的第一种情况中,IF(0.1)返回0,因为0.1被变换到整数值, 导致测试IF(0)。这可能不是你期望的。在第二种情况中,比较测试原来的浮点值看它是否是非零,比较的结果被用作一个整数。

CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END
 
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
第一个版本返回result,其中value=compare-value。第二个版本中如果第一个条件为真,返回result。如果没有匹配的result值,那么结果在ELSE后的result被返回。如果没有ELSE部分,那么NULL被返回。
mysql> SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END;       -> "one"mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END;       -> "true"mysql> SELECT CASE BINARY "B" when "a" then 1 when "b" then 2 END;
-> NULL


评论

相关推荐

    浅谈Mysql中类似于nvl()函数的ifnull()函数

    IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。 mysql&gt; select IFNULL(1,0); -&gt; 1 mysql&gt; select IFNULL(0,10); -&gt; 0 mysql&gt; select IFNULL(1/0,10); -&gt; 10 mysql&gt; select IFNULL(1/0,'yes'); ...

    浅谈Mysql中类似于nvl()函数的ifnull()函数.pdf

    浅谈Mysql中类似于nvl()函数的ifnull()函数 IFNULL()函数是Mysql中一个非常有用的函数,它可以用来检查某个表达式是否为空,如果为空则返回另一个表达式的值。IFNULL()函数的语法为IFNULL(expr1, expr2),其中...

    浅谈mysql可有类似oracle的nvl的函数

    那么,在 MySQL 中,是否也有类似的函数呢?答案是肯定的,MySQL 提供了 `IFNULL` 函数,它与 Oracle 的 `NVL` 函数具有相似的功能。 `NVL` 函数是 Oracle 数据库特有的,它的基本用法是 `NVL(expression1, ...

    Oracle与Mysql差异说明.doc

    1. NVL 和 IFNULL:在 Oracle 中,NVL 函数用于将 NULL 值替换为指定的默认值,而在 MySQL 中,对应的函数是 IFNULL。 2. SYSDATE 和 NOW():Oracle 使用 SYSDATE 获取当前系统日期和时间,而 MySQL 使用 NOW() ...

    oracle与mysql各种语法定义及函数的不同之处及解决方案

    - `NVL(exp1, exp2)` -&gt; `IFNULL(exp1, exp2)` - `LENGTH(str)` -&gt; `CHAR_LENGTH(str)` - `NUMBER` -&gt; `NUMERIC` **控制结构** - **循环结构**: - Oracle:`WHILE 条件 LOOP...END LOOP;` - MySQL:`WHILE ...

    Oracle Sql语句转换成Mysql Sql语句

    5. **函数和操作符**:两者内置的函数和操作符有所不同,例如Oracle的NVL对应MySQL的IFNULL,Oracle的TO_DATE对应MySQL的STR_TO_DATE。 6. **序列**:Oracle使用序列(SEQUENCE)来生成唯一ID,MySQL则常使用自增...

    oracle和MySQL区别手册

    - **MySQL**: 使用`IFNULL()`函数处理`NULL`值。例如`IFNULL(u.email_address, 'default_value')`,其功能与Oracle中的`NVL()`相似。 以上是Oracle与MySQL在数据类型、常量声明、自增长数据类型、空字符处理、基本...

    Oracle与MySQL的几点区别.docx

    例如,在 Oracle 中,需要使用 NVL 函数将 NULL 替换为其他值,而在 MySQL 中可以使用 IFNULL 或 COALESCE。 以上只是 Oracle 和 MySQL 之间一些基本的差异,实际应用中还有更多细节需要注意,如索引、事务处理、...

    oracl转mysql注意事项

    - **问题描述**:MySQL导入时,需要注意表、函数、事件等的导入顺序,尤其是依赖于其他对象的视图。 - **解决方案**:先导入表、函数和事件,最后导入视图。确保视图的创建不会因为依赖关系未满足而失败。 **6. 大...

    SQL NULL 函数

    本文将详细介绍SQL中的NULL函数,包括ISNULL()、NVL()、IFNULL()以及COALESCE(),并举例说明它们在实际操作中的应用。 首先,让我们来看看ISNULL()函数。在SQL Server和MS Access中,ISNULL()函数用来检查一个...

    SQL中的ISNULL函数使用介绍

    - **MySQL** 提供了 `IFNULL()` 函数,其用法与 `ISNULL` 类似,但有一些微妙的差别: ```sql SELECT ProductName, UnitPrice*(UnitsInStock + IFNULL(UnitsOnOrder, 0)) FROM Products ``` **应用场景**: 在...

    关于sql中求平均值出现null值的解决方案

    2. 使用`IFNULL`函数(在MySQL中)或`ISNULL`函数(在SQL Server中):这两个函数的作用与`COALESCE`类似,都是将null转换为另一个值。例如: ```sql SELECT AVG(IFNULL(column_name, 0)) FROM table_name; -- ...

    mysql_note (3)(1).doc

    - `NULL`值在运算中特殊,不能与其他值直接进行算术运算,可以使用`IFNULL`或`NVL`函数来处理可能的空值情况。 - `DISTINCT`关键字用于去除查询结果中的重复行。 - 条件查询时,可以使用`&lt;&gt;`表示“不等于”,`AND`和...

    SQL Server、Oracle和MySQL判断NULL的方法

    总结来说,SQL Server的`ISNULL()`,Oracle的`NVL()`和MySQL的`IFNULL()`都是为了处理和处理NULL值而设计的,它们在数据库查询和更新中扮演着关键角色,确保数据的完整性和一致性。了解并熟练运用这些函数对于数据库...

    MySQL中对于NULL值的理解和使用教程

    处理NULL值时,MySQL提供了`IFNULL()`函数,它类似于Oracle的`NVL()`函数。`IFNULL(expr1, expr2)`会检查`expr1`,如果它不是NULL,则返回`expr1`的值,否则返回`expr2`的值。这在需要避免因NULL值导致的问题时非常...

    不同数据库之间时间格式转换及系统时间

    MySQL中使用`IFNULL()`函数进行非空判断。 ```sql IFNULL(a, b); ``` 如果`a`为空,则返回`b`;如果不为空,则返回`a`。 ### 二、SQL Server中的时间格式处理 #### 1. 时间转字符 SQL Server中使用`CONVERT()`函数...

    SQL语句的初级教程,分批上传,希望大家能够喜欢2

    在这种情况下,可以使用`IFNULL()`(MySQL)、`NVL()`(Oracle)或`ISNULL()`(SQL Server)等函数来处理NULL值,或者使用`CASE`语句来添加条件判断。 总的来说,SQL中的字符串连接功能是数据处理中的基本工具,...

    Mybatis返回int或者Integer类型报错的解决办法

    除了`NVL()`,在不同的数据库系统中还有其他类似的函数用于处理空值: - MySQL: `IFNULL(sum(data),0)` - SQL Server: `ISNULL(sum(data),0)` - Oracle: `NVL(sum(data),0)` - 对于所有数据库兼容的通用方法: `...

Global site tag (gtag.js) - Google Analytics