关于Oracle中的nvl()函数的使用,中医科查询出院病人信息报错
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于Oracle中的nvl()函数的使用,中医科查询出院病人信息报错,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2233字,纯文字阅读大概需要4分钟。
内容图文
然后看到该界面的sql为
然后在plsql里面运行该代码,
报错
处理方法:
1.确定报错的位置
现在确定出错的位置就是注销掉的那两行代码,
然后
然后这就是报错的原因,
是因为他的入院诊断有两条
我想判断一下,如果是中医病区就取中医的诊断否则取西医的
但是宁哥给了一个更好的解决问题的方法
用NVL函数
在介绍这个之前你必须明白什么是oracle中的空值null
1.NVL函数
NVL函数的格式如下:NVL(expr1,expr2)
含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。
2 NVL2函数
NVL2函数的格式如下:NVL2(expr1,expr2, expr3)
含义是:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值
3. NULLIF函数
NULLIF(exp1,expr2)函数的作用是如果exp1和exp2相等则返回空(NULL),否则返回第一个值。
4.Coalesce函数
Coalese函数的作用是的NVL的函数有点相似,其优势是有更多的选项。
格式如下:
Coalesce(expr1, expr2, expr3….. exprn)
表示可以指定多个表达式的占位符。所有表达式必须是相同类型,或者可以隐性转换为相同的类型。
返回表达式中第一个非空表达式,如有以下语句: SELECT COALESCE(NULL,NULL,3,4,5) FROM dual 其返回结果为:3
如果所有自变量均为 NULL,则 COALESCE 返回 NULL 值。 COALESCE(expression1,...n) 与此 CASE 函数等价:
------------------------------------------------
所以宁哥把sql改为了
nvl((select jbmc from ys_zy_jbzd where zdlb = ‘入院诊断‘ and jbzh = 1 and znxh = 1 and zfbz = 0 and zxlb = 1 and tjbz = 1 and jzhm = zy_brry.zyh),(select jbmc from ys_zy_jbzd where zdlb = ‘入院诊断‘ and jbzh = 1 and znxh = 1 and zfbz = 0 and zxlb = 2 and tjbz = 1 and jzhm = zy_brry.zyh)) ryzd,
nvl((select jbmc from ys_zy_jbzd where zdlb = ‘出院诊断‘ and jbzh = 1 and znxh = 1 and zfbz = 0 and zxlb = 1 and tjbz = 1 and jzhm = zy_brry.zyh),(select jbmc from ys_zy_jbzd where zdlb = ‘出院诊断‘ and jbzh = 1 and znxh = 1 and zfbz = 0 and zxlb = 2 and tjbz = 1 and jzhm = zy_brry.zyh)) cyzd
----------------------------------------------------------------------------
关于Oracle中的nvl()函数的使用,中医科查询出院病人信息报错
标签:函数 信息 出错 logs 变量 否则 image 参数 strong
本文系统来源:http://www.cnblogs.com/thomasbc/p/7810791.html
内容总结
以上是互联网集市为您收集整理的关于Oracle中的nvl()函数的使用,中医科查询出院病人信息报错全部内容,希望文章能够帮你解决关于Oracle中的nvl()函数的使用,中医科查询出院病人信息报错所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。