首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NVL2选择不工作的甲骨文

问使用NVL2选择不工作的甲骨文
EN

Stack Overflow用户
提问于 2014-03-07 09:46:29
回答 2查看 999关注 0票数 0

我使用函数从数据库中选择值。我有三个不同的函数,如果第一个函数不返回任何内容,则使用NVL2检查第二个和第三个函数的值。问题是,当我执行独立的函数时,它们返回值,但在NVL2函数中没有返回值,我的查询是:

代码语言:javascript
复制
select  NVL2(CRBP.FPDATE(LAM.ACID), 
             CRBP.FPDATE1(LAM.ACID),
             CRBP.ODSANCDATE(GAM.ACID)) from 
 tbaadm.lam, TBAADM.GAM
where gam.acid = lam.acid
  and gam.acid = 'VM12990'

这不返回任何值。

但当我执行:

代码语言:javascript
复制
select CRBP.FPDATE (LAM.ACID) from tbaadm.lam where lam.acid = 'VM12990';

这已经返回了一个值。考虑到这是检查中的第一个查询,这不是第一个查询返回的值吗?我的第一个问题是什么??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-07 10:24:17

如果CRBP.FPDATE返回一个值,查询应该返回函数CRBP.FPDATE1返回的值,如果CRBP.FPDATE返回NULL,那么查询应该返回CRBP.ODSANCDATE的vlaue。

CRBP.FPDATE1返回什么了吗?

票数 4
EN

Stack Overflow用户

发布于 2016-10-27 15:30:04

NVL2(a,b,c)是一个“如果a为null,那么另一个为b”的类型函数。因此,a的值永远不会返回。

听起来您需要COALESCE,它将从一组参数返回第一个非空值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22246609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档