美文网首页
2019-09-02 SQL 函数NULLIF、NULL、ISN

2019-09-02 SQL 函数NULLIF、NULL、ISN

作者: 忆丶往 | 来源:发表于2019-09-27 22:01 被阅读0次

    NULLIF函数

    NULLIF(Expression1,Expression2)
    给定两个参数Expression1和Expression2,如果两个参数相等,则返回NULL;
    否则就返回第一个参数。

    等价于:Case WHEN Expression1=Expression2 Then NULL ELSE Expression1

    例如:Select NULLIF(1,1)返回NULL,Select NULLIF(1,2)返回1。

    Tips:实际应用中,例如防止除0操作的放生,可以使用a/NULLIF(b,0),这样就不怕b是0了,当然除0操作也可以通过别的方式判断。

    NULL

    NULL是个神奇的东西,表示空值,未知值;任何数与它加减乘除都返回NULL

    ISNULL函数

    ISNULL(Expression1,Expression2)
    给定两个参数Expression1和Expression2,如果Expression1是NULL,那么返回Expression2,否则返回Expression1。

    等价于:Case WHEN Expression1 is NULL Then Expression2 ELSE Expression1

    例如:Select ISNULL(NULL,1)返回1,Select ISNULL(1,2)返回1。

    实际应用中,可以对空值进行默认值替代。
    例如:SELECT ISNULL(email,'没有填写email') from table1,所有emailnull的,用“没有填写email”来替代。

    COALESCE函数

    COALESCE(Expression1,Expression2,Expression3,......)
    接受一系列的表达式或列,返回第一个非空的值。
    例如:SELECT COALESCE(NULL,NULL,4,NULL,NULL,5),那么返回4;如果里面的参数都为NULL,那么会报错。

    IIF 函数

    IIF ( boolean_expression, true_value, false_value ),看例子↓

    select iif(30>45,'对','错') as 结果  
    /*  
    结果  
    ----  
    错  
    */  
    select iif(null=null,'对','错') as 结果  
    /*  
    结果  
    ----  
    错  
    */  
    select iif(null is null,'对','错') as 结果  
    /*  
    结果  
    ----  
    对  
    */
    

    WITH TIES

    top()order by 一起用,可以返回多于top的行。防止丢失想要的信息。

    例如:有个表table1

    select top(3) * from table1 order by name desc:结果如下:(只有三条)

    image

    select top(3) with ties * from table1 order by name desc:结果如下:

    image
    原文地址

    相关文章

      网友评论

          本文标题:2019-09-02 SQL 函数NULLIF、NULL、ISN

          本文链接:https://www.haomeiwen.com/subject/oybqyctx.html