oracle 判断为空赋一个值_oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值

NVL函数用于处理数据库中的空值,当指定的列为空时,它会返回一个默认值。在计算金额时,可以用NVL避免空数据,如NVL(JINE,0)。此外,在表达式和条件查询中使用NVL能确保不丢失数据。例如,在创建视图时,如果数字字段可能为空,可能导致Hibernate异常,这时就需要使用NVL填充默认值。提供的SQL创建视图的例子展示了NVL如何应用于可能为空的列。
摘要由CSDN通过智能技术生成

函数声明: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

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2012-08-02 11:10

浏览 2680

分类:数据库

评论

1 楼

潇洒天涯

2013-04-19

[color=blue][color=cyan]

32b16d55493e15c0f1e400cb49121039.gif 

0956f0a970daab536ce4be0ee96b00ac.gif 

2fd2d9c1d175d11752585fa9b76aba29.gif 

50880c61e3199786f144db0328de5b6f.gif 

5fc1b339112ca891d78bf0475ef98611.gif 

c67bd71e61e84a98980a6b795539f73c.gif 

46824d74e28d56e0d70bd4ffe8816f2d.gif  

4038fc4bf9f977fecd6135149c7787dc.gif 

319668d0a4932b9d275ae47da8be0b76.gif 

966903dea4bcb507358d5dcce8b912e5.gif 

06518c3a0f730e08e7ffc573306f0ee6.gif

dac4074c17d1cb3cd8fff59f5e99a670.gif[/color][/color]

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值