`
wangyanlong0107
  • 浏览: 499653 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值

 
阅读更多

函数声明:nvl(col,val) 


说明:当col为空时取val作为返回值,当col不为空时取col值。 


用处:最主要的是格式化数据,比如计算金额时,不想出现空数据,可以使用nvl(JINE,0)来得到0。由于null+(或-,*,/)数字等于null,所以在表达式中对可能为空的值要使用nvl由于null!=null,有时对可能为空的列进行条件查询时,可能出现结果集丢失数据问题,加上nvl就不会了。 

 

一般写视图的时候的为数字的项为null或没有默认值可能会引起hibernate抛异常,这是需要把null附一个值,用此函数

create or replace view tb_v_pmg_appraisereport as

SELECT 

       T.C_OBJECTID               C_EMPOID,

       emp.c_code                 C_EMPCODE,

       emp.c_name                 C_EMPNAME,

       org.c_oid_orgunit          C_UNITID,

       org.c_name                 C_UNITNAME,

       T.C_OID_OBJECT             C_OID,

       PC.C_NAME                  C_PRECEPTNAME,

       PC.C_OID_PRECEPT           C_PRECEPTID,

       PH.C_OID_PHASE             C_PHASEID,

       PH.C_NAME                  C_PHASENAME,

       PH.C_BEGINDATE             C_PHBEGINDATE,

       PH.C_ENDDATE               C_PHENDDATE,

       T.C_COMPETITION            C_COMPETITION,

       nvl(D.C_OID_DISTRIBUTERATEITEM,-1) C_DISTRIBUTEID,

       D.C_NAME                   C_DISTRIBUTENAME,

       T.C_EVALUATESCORE          C_EVALUATESCORE,

       T.C_APPROVESCORE           C_APPROVESCORE,

       T.C_PERFORMANCESCORE       C_PERFORMANCESCORE,

       T.C_SCOREDESC              C_SCOREDESC,

       T.c_Appraisereportid       C_UPLOADID,

       T.C_OPERATOR               C_OPERATOR,

       T.C_OPERATETIME            C_OPERATETIME

  FROM TB_PMG_OBJECT T

  LEFT JOIN TB_PMG_DISTRIBUTERATEITEM D ON D.C_OID_DISTRIBUTERATEITEM =

                                           T.C_DISTRIBUTEID,

 TB_PMG_PRECEPT PC, TB_PMG_PHASE PH, 

 

 tb_inf_employee emp, tb_org_orgunit org

 

 WHERE PC.C_OID_PRECEPT = T.C_PRECEPTID

   AND PH.C_OID_PHASE = T.C_PHASE

   AND PC.C_TYPE = '1'

   AND t.c_objectid = emp.c_employeeid

   AND org.c_oid_orgunit = emp.c_unitid

 

 ORDER BY T.C_OBJECTID, PC.C_OID_PRECEPT, PH.C_BEGINDATE 

分享到:
评论
1 楼 潇洒天涯 2013-04-19  
[color=blue][color=cyan]            [/color][/color]

[color=cyan]去委屈委屈v[/col[b][b][/b][/b]or]

相关推荐

    oracle处理空值的方法

    当expr1为NULL时,NVL函数返回expr2的值;如果expr1不是NULL,则返回expr1的值。这个函数常用于确保查询结果中不会出现NULL值,例如将NULL转换为0或其他默认值。 **示例代码:** ```sql HR@XE> select nvl...

    nvl的相关函数描述

    在数据库编程领域,尤其是Oracle SQL和PL/SQL中,`NVL`、`NVL2`和`NULLIF`函数是处理空值(NULL)的关键工具。这些函数帮助程序员在查询和处理数据时,优雅地处理可能出现的NULL值,确保程序逻辑的正确性和数据的...

    Oracle数据库Sql语句详解大全.pptx

    Oracle 数据库 SQL 语句详解大全 本资源总结了 Oracle 数据库中 ...* 本章总结了 SELECT 查询的基本语法、条件查询的使用、NVL 函数和字符串连接符的应用等知识点,为读者提供了 Oracle 数据库 SQL 语句的详解大全。

    关于oracle空值的解决方法[收集].pdf

    Oracle数据库中的空值(NULL)处理是数据库管理中常见的问题,尤其在进行复杂查询和数据分析时,理解并正确处理空值至关重要。Oracle空值并不是一个实际的值,它表示未知或者缺失的数据。以下是对Oracle空值及其解决...

    oracle4的表查询和基本函数.docx

    NVL函数用于在字段值为NULL时替换指定的默认值。例如,如果我们要确保所有工资不为空,可以用NVL函数: ```sql SELECT NVL(sal, 0) AS Salary FROM EMP; ``` 在Oracle中,分页查询是一个常见需求。这里提到了三种...

    浅谈mysql可有类似oracle的nvl的函数

    Oracle 中有一个非常实用的函数 `NVL`,用于处理空值(NULL)的情况。那么,在 MySQL 中,是否也有类似的函数呢?答案是肯定的,MySQL 提供了 `IFNULL` 函数,它与 Oracle 的 `NVL` 函数具有相似的功能。 `NVL` ...

    oracle转成postgre时,oracle中函数的处理工具(orafce)

    2. **空值处理**:在Oracle中,NVL函数用于将NULL值替换为指定的默认值,orafce也提供了相同的功能。 3. **数学和字符串操作**:Oracle有一些特定的数学和字符串函数,如ROUND、TRUNC、SUBSTR等,orafce也实现了这些...

    oracle手册,详解SQL用法

    在处理空值(NULL)时,Oracle提供了`NVL()`, `NVL2()` 和 `NULLIF()` 函数。`NVL()`用于当某个表达式的结果为NULL时,替换为指定的默认值;`NVL2()`则在第二个参数不是NULL时返回第三个参数,否则返回第一个参数;`...

    SQL_Server,Oracle,DB2数据库SQL语句比较

    SQL Server使用`ISNULL(column, default_value)`来处理可能的NULL值,将NULL替换为默认值。 Oracle中使用`NVL(column, default_value)`达到同样的效果。 DB2中使用`VALUE(column, default_value)`来处理NULL值。 ...

    Oracle的几个Function实例

    如果一个字段的值为NULL,NVL函数会将其替换为你指定的默认值。例如,如果你有一个员工表,其中的电话号码字段可能为空,你可以用NVL函数来显示一个默认的电话号码: ```sql SELECT NVL(phone_number, '无电话') ...

    Oracle SQL.doc

    6. **NVL函数**:用于处理空值,将空值替换为指定的默认值。 7. **DISTINCT关键字**:去除查询结果中的重复行。 8. **数据类型**: - **NUMBER(p,s)**:数值类型,p为精度,s为刻度,用于控制小数位数。 - **...

    oracle常用函数库

    通过了解和熟练运用这些函数,可以更有效地编写SQL查询,优化数据库操作,提高数据管理的精确性和效率。这份"oracle_sql 函数.txt"文件应该包含了详细的函数介绍和示例,是学习和查阅Oracle函数的好资源。

    Oracle常用函数汇总

    Oracle数据库系统提供了丰富的函数库,帮助用户在处理数据时进行各种复杂的操作。以下是一些常用的Oracle函数,包括SQL组函数和一些杂项函数的详细解释。 **SQL Group Functions** 1. **AVG(distinct or all num)*...

    Oracle学习查询语句

    `NVL()`函数用于处理空值,如果字段值为空,则用指定的默认值替代。`DECODE()`函数类似于简单的条件语句,可以根据指定的条件返回不同的值。 以上是Oracle查询语句的基本知识,包括了条件表达式、排序、函数和转换...

    oracle期中.docx

    - `WHERE`子句用于筛选满足特定条件的记录,如`WHERE 款式名称 LIKE 'SANDAL' AND NVL(成本, 0) ,这里的`LIKE`用于模糊匹配,`NVL`函数用于将空值转换为指定的默认值(这里是0)。 - `ORDER BY`用于对查询结果...

    oracle 帮助文档--绝版 很好很强大

    `NVL`用于将NULL替换为指定的默认值,而`NVL2`则在表达式为NULL时返回第二个参数,否则返回第一个参数。此外,NULL值在逻辑判断中有特殊的含义,需要特别注意。 `CASE`和`DECODE`语句是条件判断和数据转换的重要...

    Oracle 详细手册

    在处理空值(NULL)时,`NVL`和`NVL2`函数用于处理空值情况,当指定的表达式为NULL时,它们会返回一个默认值。`CASE`和`DECODE`语句则提供了条件判断的能力,根据不同的条件返回不同的结果,这对于复杂的数据处理...

    (完整word版)Oracle笔试题目带答案.docx

    * NVL 函数是 Oracle 数据库中的一个函数,用于将空值转换为默认值。 * Intersect 运算符是 Oracle 数据库中的一个运算符,用于返回两个表中的共同记录。 * Partition by 语句是 Oracle 数据库中的一个语句,用于...

    oracle学习

    例如,计算年薪时,如果salary或commission_pct为NULL,会导致计算结果也是NULL,因此可以使用NVL来确保即使有空值也能得到默认值:`SELECT NVL(salary*12*(1+commission_pct/100),0) yearsal FROM s_emp;...

Global site tag (gtag.js) - Google Analytics