精华内容
下载资源
问答
  • NULLIF函数

    千次阅读 2019-03-13 09:38:44
    如果是希望如果是空字符串''返回null的,可以使用 NULLIF(字段,'') 表示如果A和B相等, NULLIF函数返回null.否则则返回A. 相关的其他函数参考: https://www.cnblogs.com/shy1766IT/p/6725581.html ...

    开发中, 对于没有默认值的列, 如果需要将null转为0做判断,可以使用isnull(列名,0). 如果是希望如果是空字符串''返回null的,可以使用 NULLIF(字段,'') 表示如果A和B相等, NULLIF函数返回null.否则则返回A.

    相关的其他函数参考:

    https://www.cnblogs.com/shy1766IT/p/6725581.html

    展开全文
  • MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用

    万次阅读 多人点赞 2019-01-06 14:55:53
    在MySQL中可以使用IF()、IFNULL()、NULLIF()、ISNULL()函数进行流程的控制。 1、IF()函数的使用 IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。 ...

    在MySQL中可以使用IF()、IFNULL()、NULLIF()、ISNULL()函数进行流程的控制。

    1、IF()函数的使用

    IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。

    SELECT IF(TRUE,'A','B');    -- 输出结果:A
    SELECT IF(FALSE,'A','B');   -- 输出结果:B

    2、IFNULL()函数的使用

    IFNULL(expr1,expr2),如果expr1的值为null,则返回expr2的值,如果expr1的值不为null,则返回expr1的值。

    SELECT IFNULL(NULL,'B');    -- 输出结果:B
    SELECT IFNULL('HELLO','B'); -- 输出结果:HELLO

    3、NULLIF()函数的使用

    NULLIF(expr1,expr2),如果expr1=expr2成立,那么返回值为null,否则返回值为expr1的值。

    SELECT NULLIF('A','A');     -- 输出结果:null
    SELECT NULLIF('A','B');     -- 输出结果:A

    4、ISNULL()函数的使用

    ISNULL(expr),如果expr的值为null,则返回1,如果expr1的值不为null,则返回0。

    SELECT ISNULL(NULL);        -- 输出结果:1
    SELECT ISNULL('HELLO');     -- 输出结果:0

     

    展开全文
  • MySQL nullif()函数

    千次阅读 2018-09-01 19:59:41
    转载自 MySQL nullif()函数 MySQL NULLIF函数简介 NULLIF函数是接受2个参数的控制流函数之一。如果第一个参数等于第二个参数,则NULLIF函数返回NULL,否则返回第一个参数。 NULLIF函数的语法如下: NULLIF...

    转载自   MySQL nullif()函数

    MySQL NULLIF函数简介

    NULLIF函数是接受2个参数的控制流函数之一。如果第一个参数等于第二个参数,则NULLIF函数返回NULL,否则返回第一个参数。

    NULLIF函数的语法如下:

    NULLIF(expression_1,expression_2);
    

    如果expression_1 = expression_2true,则NULLIF函数返回NULL,否则返回expression_1 。

    请注意,NULLIF函数与以下使用CASE的表达式类似:

    CASE WHEN expression_1 = expression_2
       THEN NULL
    ELSE
       expression_1
    END;
    

     

    请注意,不要将NULLIF函数与IFNULL函数混淆。

    MySQL NULLIF示例

    我们来看一下使用NULLIF函数来了解它的工作原理的一些例子。

    示例-1

    mysql> SELECT NULLIF(1,1);
    +-------------+
    | NULLIF(1,1) |
    +-------------+
    | NULL        |
    +-------------+
    1 row in set
    

    示例-2

    mysql> SELECT NULLIF(1,2);
    +-------------+
    | NULLIF(1,2) |
    +-------------+
    |           1 |
    +-------------+
    1 row in set
    

    示例-3

    mysql> SELECT NULLIF('MySQL NULLIF','MySQL NULLIF');
    +---------------------------------------+
    | NULLIF('MySQL NULLIF','MySQL NULLIF') |
    +---------------------------------------+
    | NULL                                  |
    +---------------------------------------+
    1 row in set
    

    示例-4

    mysql> SELECT NULLIF('MySQL NULLIF','MySQL IFNULL');
    +---------------------------------------+
    | NULLIF('MySQL NULLIF','MySQL IFNULL') |
    +---------------------------------------+
    | MySQL NULLIF                          |
    +---------------------------------------+
    1 row in set
    

    示例-6

    mysql> SELECT NULLIF(1,NULL);
    +----------------+
    | NULLIF(1,NULL) |
    +----------------+
    |              1 |
    +----------------+
    1 row in set
    

    示例-7

    mysql> SELECT NULLIF(NULL,1);
    +----------------+
    | NULLIF(NULL,1) |
    +----------------+
    | NULL           |
    +----------------+
    1 row in set
    

    上面示例中的语句是如何工作的?

    • NULIF(1,1)返回NULL,因为1等于1
    • NULLIF(1,2)返回1,这是第一个参数,因为1不等于2
    • NULLIF('MySQL NULLIF','MySQL NULLIF')返回NULL,因为两个参数是相同的字符串。
    • NULLIF('MySQL NULLIF','MySQL NULLIF')返回MySQL NULLIF,因为两个字符串不相等。
    • NULLIF(1,NULL)返回1,因为1不等于NULL
    • NULLIF(NULL,1)返回第一个参数,即NULL,因为NULL不等于1

    使用NULLIF函数来防止除零错误

    我们经常使用NULLIF函数来阻止在查询中除以零错误。如果MySQL服务器启用了ERROR_FOR_DIVISION_BY_ZERO模式,则当发生零除数时将发出错误。

    见下列查询语句:

    SELECT 1/0; -- cause error
    

    上面语句得到以下结果 -

    mysql> SELECT 1/0; 
    +------+
    | 1/0  |
    +------+
    | NULL |
    +------+
    1 row in set
    

    在这种情况下,您可以使用NULLIF函数来阻止除以零,如下所示:

    SELECT 1/NULLIF(0,0); -- return NULL
    

    因为0等于0,所以NULLIF(0,0)表达式返回NULL。结果语句返回NULL

    我们来看看示例数据库(yiibaidb)中的orders表,其结构如下所示 -

    mysql> desc orders;
    +----------------+-------------+------+-----+---------+-------+
    | Field          | Type        | Null | Key | Default | Extra |
    +----------------+-------------+------+-----+---------+-------+
    | orderNumber    | int(11)     | NO   | PRI | NULL    |       |
    | orderDate      | date        | NO   |     | NULL    |       |
    | requiredDate   | date        | NO   |     | NULL    |       |
    | shippedDate    | date        | YES  |     | NULL    |       |
    | status         | varchar(15) | NO   |     | NULL    |       |
    | comments       | text        | YES  |     | NULL    |       |
    | customerNumber | int(11)     | NO   | MUL | NULL    |       |
    +----------------+-------------+------+-----+---------+-------+
    7 rows in set
    

    首先,要获取2013年6月创建的所有订单,请使用以下查询:

    SELECT 
        orderNumber, orderdate, requiredDate, shippedDate, status
    FROM
        orders
    WHERE
        orderDate BETWEEN '2013-06-01' AND '2013-06-30';
    

    执行上面查询语句得到以下结果 -

    +-------------+------------+--------------+-------------+---------+
    | orderNumber | orderdate  | requiredDate | shippedDate | status  |
    +-------------+------------+--------------+-------------+---------+
    |       10127 | 2013-06-03 | 2013-06-09   | 2013-06-06  | Shipped |
    |       10128 | 2013-06-06 | 2013-06-12   | 2013-06-11  | Shipped |
    |       10129 | 2013-06-12 | 2013-06-18   | 2013-06-14  | Shipped |
    |       10130 | 2013-06-16 | 2013-06-24   | 2013-06-21  | Shipped |
    |       10131 | 2013-06-16 | 2013-06-25   | 2013-06-21  | Shipped |
    |       10132 | 2013-06-25 | 2013-07-01   | 2013-06-28  | Shipped |
    |       10133 | 2013-06-27 | 2013-07-04   | 2013-07-03  | Shipped |
    +-------------+------------+--------------+-------------+---------+
    7 rows in set
    

    第二,计算2013年6月发货订单数量/取消订单数量,可使用SUMIF函数。

    SELECT SUM(IF(status = 'Shipped',1,0)) / 
           SUM(IF(status = 'Cancelled',1,0))
    FROM orders
    WHERE orderDate BETWEEN '2013-06-01' and '2013-06-30';
    

    执行上面查询语句,得到以下结果 -

    +------------------------------------------------------------------------+
    | SUM(IF(status = 'Shipped',1,0)) /SUM(IF(status = 'Cancelled',1,0)) |
    +------------------------------------------------------------------------+
    | NULL                                                                       |
    +------------------------------------------------------------------------+
    1 row in set
    

    MySQL发出错误,因为在2013年6月没有创建取消订单。 这意味着表达式SUM(IF(status ='Cancelled',1,0))返回0

    第三,为了防止除0错误,您可以使用NULLIF函数,如下查询:

    SELECT 
        SUM(IF(status = 'Shipped', 1, 0)) /NULLIF(SUM(IF(status = 'Cancelled', 1, 0)), 0)
    FROM
        orders
    WHERE
        orderDate BETWEEN '2013-06-01' AND '2013-06-30';
    

    执行上面查询语句,得到以下结果 -

    +-------------------------------------------------------------------------+
    | SUM(IF(status = 'Shipped', 1, 0)) /NULLIF(SUM(IF(status = 'Cancelled', 1, 0)), 0) |
    +-------------------------------------------------------------------------+
    | NULL                                                                              |
    +-------------------------------------------------------------------------+
    1 row in set
    

    因为2013年6月没有创建取消订单,所以SUM(IF(status ='Cancelled',1,0))返回0,这也使得NULLIF(SUM(IF(status ='Cancelled',1,0) ,0)表达式返回NULL值。

    在本教程中,我们向您介绍了NULLIF函数,这在某些情况下非常方便,例如阻止查询中的零错误

    展开全文
  • Oracle NULLIF函数的使用

    千次阅读 2018-07-19 15:42:38
    NULLIF语法  NULLIF(expr1,expr2),如果两个参数相等,返回null,否则返回第一个。第一个参数不可指定为空。对于非数字类型参数,数据类型必须一致。   NULLIF与DECODE  decode (条件,值1,返回值1,值2,...

    NULLIF语法

                  NULLIF(expr1,expr2),如果两个参数相等,返回null,否则返回第一个。第一个参数不可指定为空。对于非数字类型参数,数据类型必须一致。

     

    NULLIF与DECODE

              decode (条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

               NULLIF(param,0)等效于DECODE(param,0,null,param):如果param为0,则返回null,否则返回param。

      

     

     

     

    展开全文
  • IFNULL、NULLIF和ISNULL用法

    万次阅读 2016-12-16 14:39:38
    isnull,ifnull,nullif的用法如下: isnull(expr) 的用法: 如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。 mysql> select isnull(1+1); -> 0 mysql> select isnull(1/0); -> 1 使用= 的null ...
  • Oracle NULLIF函数

    万次阅读 2013-03-07 22:49:06
    Oracle NULLIF函数 Oracle NULLIF函数语法为NULLIF(表达式1,表达式2),如果表达式1和表达式2相等则返回空值,如果表达式1和表达式2不相等则返回表达式1的结果。 注意:表达式1和表达式2应该是相同数据类型或能...
  • 【Hive】ifnull/nullif = coalesce/if

    千次阅读 2018-06-15 08:58:20
    hive中没有ifnull/nullif函数。 可用以下替代: - coalesce( value1,value2,… ) - if( value1 is null, value2, value1) 二、举例 hive> select coalesce(col1, col2, cols) as res1, if(col1 is ...
  • oracle函数之NULLIF

    万次阅读 2016-02-16 21:06:45
    语法NULLIF ( expression1 , expression2 ) 参数expression1, expression2 常量、列名、函数、子查询或算术运算符、按位运算符以及字符串运算符的任意组合。 返回类型与第一个 expression1 相同。 ...
  • MySql 里的IFNULL、NULLIF和ISNULL用法

    千次阅读 2015-12-09 14:54:25
    今天用到了MySql里的isnull才发现他和MSSQL里的还是有点区别,现在简单总结一下: mysql中isnull,ifnull,nullif的用法如下: isnull(expr) 的用法: 如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。
  • ISNULL AND NULLIF 的区别

    千次阅读 2009-08-17 17:35:00
    今天无意看到nullif()这个函数,猛的想起isnull 这个函数,这两个意思一样吗。我知道isnull(check_expression,replacement_expression)如果check_expression的值为null,用replacement_expression的值代替。查了一下...
  • mysql中isnull,ifnull,nullif的用法如下: isnull(expr) 的用法: 如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。  mysql> select isnull(1+1); -> 0 mysql> select isnull(1/0); -> 1 使用...
  • SQL Server里的 ISNULL 与 NULLIF

    千次阅读 2013-03-22 16:42:57
    ISNULL(check_expression, replacement_value) check_expression 与 replacement_value 数据类型必须一致,如果 check_expression 为 NULL,则返回 replacement_value,如果check_expression 不为 NULL,则...NULLIF
  • oracle 使用nullif解决除数为零的问题

    千次阅读 2018-05-25 17:36:08
    先来说一下nullif的语法。 NULLIF compares expr1 and expr2. If they are equal, then the function returns null. If they are not equal, then the function returns expr1. You cannot specify the literal...
  • SQL 中的 IFNULL和NULLIF

    千次阅读 2018-12-02 21:16:25
    sql 中的IFNULL和NULLIF很容易混淆,在此记录一下。 IFNULL IFNULL(expression1, expression2) 如果expression1为null, 在函数返回expression2,否则将返回expression1。 例如 mysql> select ...
  • Sql Server中两个判断是否为空的函数NULLIF和ISNULL的说明如下:  <br />NULLIF:需要两个参数  <br />例子:NULLIF(a,b)  说明:如果a和b是相等的,那么返回NULL,如果不相等返回a  ...
  • sql中ifnull(),isnull(),nullif()的使用方法

    千次阅读 2019-01-05 20:44:01
    isnull,ifnull,nullif的用法如下: isnull(expr) 的用法: 如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。 mysql&gt; select isnull(1+1); -&gt; 0 mysql&gt; select isnull(1/0); -&...
  • SAP HANA SQL IFNULL和NULLIF用法与区别

    千次阅读 2017-05-16 20:45:40
    博客转移,点击进入:SAP HANA SQL IFNULL和NULLIF用法与区别 我在公众号里写了很多SAP的文章 有兴趣可以关注一下 公众号:SAP Technical
  • 先来说一下nullif的语法。 nullif(expr1,expr2) 如果两个参数相等,返回null,否则返回第一个。第一个参数不可指定为空。对于非数字类型参数,数据类型必须一致。对于数值数据类型,会隐式的转化为...
  • SQLSERVER中nullif函数的用法

    千次阅读 2014-05-06 15:40:34
     语法NULLIF ( expression1 , expression2 ) 如果expression1和
  • NULLIF(v1, v2) 如果两个 值相等,则返回 NULL,如果两个不相等,则返回第一个 v1 v1,v2的类型要一致
  • 记录一下,SQLite中nullif和ifnull的区别:nullif(null,'') --输出null nullif('','') --输出null nullif('t','t') --输出null nullif('tl','t') --输出tl --看输出值发现,nullif是前后对比函数,一致返回null,...
  • SQL Server中 ISNULL 与 NULLIF的用法

    千次阅读 2018-12-19 10:35:33
     ISNULL(check_expression, replacement_value) check_expression 与 replacement_value 数据类型必须一致  如果 check_expression 为 NULL,则返回 replacement_value 如果 check_expression 不为 NULL,则返...
  • COALESCE()、isnull()、nullif()函数的用法

    千次阅读 2011-12-26 10:10:11
    http://blog.csdn.net/baoshan/article/details/2907602 COALESCE() 用法 Select COALESCE(null,null,'1','2') 返回1 作用 返回其参数中第一个非空表达式。 ...用法 Select isnull(null,0) 返回 0 ...nullif
  • 在拼sql语句的时候要做一个,将select...1、 nullif (ORACLE 和 SQL Server的用法相同): 用法: NULLIF(expression1 , expression2 ), 说明: 如果两个表达式不相等,NULLIF 返回第一个expression1的值。
  • SQL Server里的 ISNULL 与 Oracle 中的 NULLIF不同: SQL Server 中有两个参数,语法: ISNULL(check_expression, replacement_value) check_expression 与 replacement_value 数据类型必须一致 如果 check_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 224,182
精华内容 89,672
关键字:

nullif