WEB开发网
开发学院数据库Oracle Oracle数据库查询十个小技巧(二) 阅读

Oracle数据库查询十个小技巧(二)

 2008-10-22 12:56:11 来源:WEB开发网   
核心提示: 针对这种情况,我们该如何处理呢?在数据库设计过程中,Oracle数据库查询十个小技巧(二)(2),主要有两种处理方法,一是在设计表的时候,提供了一个专门用户查询NULL字段记录的函数IS NULL,若我们现在想知道哪些员工没有注明身份证信息时,对于这些需要参与运算的字段,要设置默认值

针对这种情况,我们该如何处理呢?在数据库设计过程中,主要有两种处理方法。

一是在设计表的时候,对于这些需要参与运算的字段,要设置默认值。如可以把这个字段的默认值设置为0。则当添加这条记录的时候,即使前台用户没有给其设置值。在保存数据的时候,系统也会给其默认值0。如此的话,在进行四则运算的时候,才可能得到我们想要的值。

二是在查询的时候,需要考虑到这个NULL值的影响。有时候,若数据库中已经有记录,则不能够改变数据库字段的默认值。遇到这种情况,若我们需要对NULL字段与数字字段进行四则运算的时候,又该如何处理呢?此时,我们就需要在查询的时候,给NULL字段赋0的值。具体我们可以在查询语句中,如此定义。Select 员工姓名,基本工资,加班工资,基本工资+NVL(加班工资,0) as 总工资 FROM 员工薪资表;如此的话,当加班工资的值为NULL的时候,则系统在运算的时候,会把其当作0来处理。这么处理,我们就可以得到我们所想要的结果。不过一般情况下,这一种处理方式是不得已而为之的。最好的是,在数据库表设计的时候,就给相关的字段设置0的默认值。

另外,还有一个函数NVL2跟NVL函数功能类似,只是其多了一个参数而已,其表达式为NVL2(参数1,参数2,参数3)。它的含义是,当参数1不为空值时,则返回的值为参数2;当参数1是空值时,则范围的是参数3。若用这个函数实现NVL函数的目的时,则就需要如此改写上面这个案例的函数参数写法:NAV2 (加班工资,基本工资+加班工资,基本工资)。可见,两个函数有异曲同工之妙。具体采用哪种函数为好,则就需要根据数据库管理员的爱好来选择了。

二是如何查询NULL字段。

如果现在有一张员工基本信息表,其中有一个身份证号码的字段。现在若用户想知道,有哪些员工还没有记录身份证号码信息,该如何做呢?由于这个NULL字段不为空格或者0。若我们在查询条件语句中,利用’0’ 或者’’(空格)作为查询条件的话,是查不到我们所需要的结果的。此时,在数据库中,提供了一个专门用户查询NULL字段记录的函数IS NULL。若我们现在想知道哪些员工没有注明身份证信息时,就可以利用如下的语句来实现。

Tags:Oracle 数据库 查询

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接