zoukankan      html  css  js  c++  java
  • 【SQL 编程你也行】SQL中的NULL函数:isnull、ifnull、nullif、coalesce

    1、isnull(xx):是否是null,类似于is null

    mysql> set @v = 'a';
    Query OK, 0 rows affected (0.03 sec)
    
    
    mysql> select isnull(@v);
    +------------+
    | isnull(@v) |
    +------------+
    | 0 |
    +------------+
    1 row in set (0.01 sec)
    
    
    mysql> set @v = null;
    Query OK, 0 rows affected (0.01 sec)
    
    
    mysql> select isnull(@v);
    +------------+
    | isnull(@v) |
    +------------+
    | 1 |
    +------------+
    1 row in set (0.01 sec)


    2、ifnull(xx,yy):如果xx是null,那么返回指定yy,否则还是返回xx。

    mysql> set @v = 'a';
    Query OK, 0 rows affected (0.01 sec)
    
    
    mysql> select ifnull(@v,'wc');
    +-----------------+
    | ifnull(@v,'wc') |
    +-----------------+
    | a |
    +-----------------+
    1 row in set (0.00 sec)
    
    
    mysql> set @v = null;
    Query OK, 0 rows affected (0.02 sec)
    
    
    mysql> select ifnull(@v,'wc');
    +-----------------+
    | ifnull(@v,'wc') |
    +-----------------+
    | wc |
    +-----------------+
    1 row in set (0.01 sec)


    3、nullif(xx,yy) :如果xx=yy,则返回null,否则还是返回xx

    mysql> set @v = 'a';
    Query OK, 0 rows affected (0.01 sec)
    
    
    mysql> select nullif(@v,'wc');
    +-----------------+
    | nullif(@v,'wc') |
    +-----------------+
    | a |
    +-----------------+
    1 row in set (0.04 sec)
    
    
    mysql> select nullif(@v,'a');
    +----------------+
    | nullif(@v,'a') |
    +----------------+
    | NULL |
    +----------------+
    1 row in set, 1 warning (0.02 sec)


    4、coalesce(xx,yy,zz...):返回一个列表里第一个非null的值

    mysql> set @v = 'a';
    Query OK, 0 rows affected (0.01 sec)
    
    
    mysql> select coalesce(null,@v,null,3);
    +--------------------------+
    | coalesce(null,@v,null,3) |
    +--------------------------+
    | a |
    +--------------------------+
    1 row in set (0.02 sec)
    
    
    mysql> set @v = null;
    Query OK, 0 rows affected (0.01 sec)
    
    
    mysql> select coalesce(null,@v,null,3);
    +--------------------------+
    | coalesce(null,@v,null,3) |
    +--------------------------+
    | 3 |
    +--------------------------+
    1 row in set (0.01 sec)


  • 相关阅读:
    bzoj4152 [AMPPZ2014]The Captain
    bzoj2429 [HAOI2006]聪明的猴子
    bzoj1196 [HNOI2006]公路修建问题
    bzoj1083 [SCOI2005]繁忙的都市
    bzoj1050 [HAOI2006]旅行comf
    bzoj1088 [SCOI2005]扫雷Mine
    bzoj1085 [SCOI2005]骑士精神
    bzoj3437 小P的牧场
    bzoj1296 [SCOI2009]粉刷匠
    A1046 Shortest Distance (20)(20 分)
  • 原文地址:https://www.cnblogs.com/momogua/p/8304440.html
Copyright © 2011-2022 走看看