oracle里nvl,to_char,decode这些函数怎么用啊?

Oracle提供了一些逻辑判断函数,这些函数可以在查询中使用。

1. nvl :针对空值进行测试

函数原型为:NVL(testValue,SubstituteValue)

常见的用法是? Select?max(score) From SC Where Name=‘Jerry’

有时max(score)为空,也就是说Jerry并没有考试记录,这时我们用"No Record"标注一下:

Select NVL(max(score),"No Record") From SC;

还有一个NVL2函数跟其相似,函数原型为: NVL(testValue,SubValue1,SubValue2)

NVL2函数实现的是若testValue为NULL,返回SubValue1,否则返回SubValue2。

2.Decode函数

Decode函数的原型为: Decode(testValue, if1, then1, if2,then2.....else).

针对testValue进行测试,若testValue等于if1则返回then1,若testValue等于if2则返回then2,....若都没有返回,刚返回else.?示例如下:

若我们用Decode可以这样实现:

SELECT class, course,

DECODE (student,

'A', 'Anco',

'B', 'Bily',

'C', 'Candy',

'D', 'Davi',

'E', 'Eve',

'F', 'Fion'

) AS en_name

FROM studentinfo

3. to_char函数功能,就是将数值型或者日期型转化为字符型,转换过程中可以进行格式化处理,函数原型较多,示例如下: