将select出来的字段进行求和运算——nullif、isnull、nvl函数的使用

在拼sql语句的时候要做一个,将select出来的字段进行求和运算的查询,在网上搜了搜,得到点儿启发,这里写一下。先介绍一下用到的函数吧:

1、    nullif (ORACLE 和 SQL Server的用法相同):

用法:

NULLIFexpression1 , expression2

说明:

如果两个表达式不相等,NULLIF 返回第一个expression1的值。

如果两个表达式相等,NULLIF 返回空值——NULL。  

 

2、    isunll(只适用于SQL Server,ORACLE中没有该函数)

用法:

ISNULL ( check_expression,replacement_value )

说明:

check_expression:将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。

replacement_value:当check_expression为 NULL时将返回的表达式

注:replacement_value必须与 check_expresssion 具有相同的类型。

 

3、    nvl(只适用于ORACLE,SQL Server中没有该函数)

用法:

NVL(check_expression,replacement_value)

说明:

如果check_expression为NULL,则NVL函数返回replacement_value的值,否则返回check_expression的值,如果两个参数都为NULL ,则返回NULL。

注意事项:check_expression和replacement_value必须为同一数据类型,除非显式的使用TO_CHAR函数进行类型转换。

 

Example

student表中的grade1_grade2_两个字段的值进行求和:

SQL Server语句:

select isnull(isnull(s.grade1_,0)+isnull(r. grade2_,0),0)fromstudent s

ORACLE语句:

select nvl(nvl(s.grade1_,0)+nvl(r. grade2_,0),0)from student s

 

参考网址:http://blog.sina.com.cn/s/blog_622c401d0100tz29.html

你可能感兴趣的:(字段,NVL,NULLIF,isunll,查询求和)