美文网首页
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