在拼sql语句的时候要做一个,将select出来的字段进行求和运算的查询,在网上搜了搜,得到点儿启发,这里写一下。先介绍一下用到的函数吧:
1、 nullif (ORACLE 和 SQL Server的用法相同):
用法:
NULLIF(expression1 , 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