oracle中is not null,oracle之is null和is not null的优化「建议收藏」

oracle中is not null,oracle之is null和is not null的优化「建议收藏」oracle之优化isnull语句一:isnull的优化方法:通过nvl(字段,j)=j的方式,将字段中为空的数据转化为j,从而正常使用索引。具体实现条件则是:iisnull<===>j=nvl(i,j);注意:使用时必须要确保字段的数据不包含j,例如:(age,15)=15,此时有可能age内容是15,此时不可以,j的值要变换,保证不再age的范围之内。函数介绍:nv…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

oracle之优化is null语句

一:is null的优化

方法:通过nvl(字段,j)=j的方式,将字段中为空的数据转化为j,从而正常使用索引。

具体实现条件则是:i is null <===> j = nvl(i,j);

注意:使用时必须要确保字段的数据不包含j,例如:(age,15)=15,此时有可能age

内容是15,此时不可以,j的值要变换,保证不再age的范围之内。

函数介绍:

nvl(a,b,c…….):当a为空时取b,当b为空时取c,以此类推。

当然还有另外一种方式解决这个问题:将null包含到索引中

–使用nvl函数的方式(不用添加索引,推荐)

select * from student t where 1=nvl(t.age,1);

–当t.age不存在等于1的数据时等价于

–select * from student t where t.age is null;

–添加索引的方式

create index idx_age_x on tab_i(decode(age,null,1));

select * from student t where decode(t.age,null,1)=1;

二:is not null的优化

方法:结果集不包含j = nvl(i,j)即可

通常情况下使用not exists或者比较大小

示例:

1:not exists

select * from student t where not exists

(select 1 form student s where 1=nvl(s.age,1));

–11g版本后not in和not exists趋于相似,也可以用not in

–当t.col_x不存在等于1的数据时等价于

–select * from student t where t.age is not null;

2:比较大小

–当t.age为总是大于1的数值时

select * from student t where 1

–当t.age为总是小于1的数值时

select * from student t where 1>nvl(t.age,1);

–直接比较大小,暗含了 IS NOT NULL

select * from student t where t.age>1;

3:比较长度

–当t.age的长度总是大于1时

select * from student t where 2<=length(nvl(t.age,1));

–因为length函数的参数为空时,其结果为空,因而不能直接使用length函数

参考链接:

https://blog.csdn.net/qq_38880340/article/details/84290900

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179178.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pip换源 -pip更换国内镜像源「建议收藏」

    pip换源 -pip更换国内镜像源「建议收藏」更换pip源到国内镜像2017年02月16日15:06:53阅读数:70784pip国内的一些镜像  阿里云http://mirrors.aliyun.com/pypi/simple/  中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/  豆瓣(douban)http://pypi.douban.com/simple/…

    2022年6月4日
    56
  • tabnine 激活码【注册码】

    tabnine 激活码【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    42
  • 薄膜电容分类研究_贴片薄膜电容

    薄膜电容分类研究_贴片薄膜电容综述在音频电路设计中,薄膜电容是个常客。它的损耗角非常低,电容值较小,耐压比较大,可以用于耦合、滤波、退耦等场合。在应用中我发现,薄膜电容种类较多,技术参数的关注点与电解电容有所不同,于是查阅了Wiki和各个厂家的Datasheet,在这里做一个总结。薄膜电容总的来说性能很好,但也分很多种类和级别,应用的场合也有所不同。基础知识在Wiki上很详尽,下图展示了薄膜电容的电极/电介…

    2022年8月22日
    7
  • WINDOWS Platform SDK 下载[通俗易懂]

    WINDOWS Platform SDK 下载[通俗易懂]最近由于需要使用IPV6方面的开发资料,下载了WINDWOS网络编程相关的代码,发现在VC6.0上无法编译,猜想可能是SDK的版本较低,于是网上找来个:http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm 下载后,安装既可以实现IPV6在VC6.0平台编译调试。

    2022年5月4日
    72
  • Word2vec原理浅析及gensim中word2vec使用

    Word2vec原理浅析及gensim中word2vec使用本文转载于以下博客链接:Word2vec原理浅析:https://blog.csdn.net/u010700066/article/details/83070102;gensim中word2vec使用:https://www.jianshu.com/p/b779f8219f74如有冒犯,还望谅解!Word2vec原理浅析及tensorflow实现Word2Vec是由Google的M…

    2022年5月13日
    37
  • 安卓网络接口_ap接入点模式

    安卓网络接口_ap接入点模式Android的无线接口层(RIL)提供了Android电话服务(android.telephony)与无线电硬件之间的抽象层。RIL是通讯无关的,提供基于GSM的网络支持。       下图显示了RIL位于Android电话系统架构中的位置:  实线框表示Android部分,虚线框表示合作伙伴所专用的部分RIL包含两个基本部件:       RIL守护进程

    2025年6月6日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号