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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • OpenStack八大核心组件精讲之—neutron理论知识

    OpenStack八大核心组件精讲之—neutron理论知识OpenStack八大核心组件精讲之—neutron理论知识一、OpenStack网络二、Linux网络虚拟化(一)、Linux虚拟网桥(二)、虚拟局域网(三)、开发虚拟交换机三、openstack网络基础服务1、neutron网络结构2、网络子网与端口3、网络拓扑类型①、Local②、Flat③、VLAN④、VXLAN⑤、GRE⑥、GENEVE⑦、总结4、网络基本架构5、neutron-server6、Neutron遵循OpenStack的设计原则,采用开放性架构,通过插件.代理与网络提供者的配合来实

    2025年6月11日
    3
  • SpringBoot面试题及答案 110道(持续更新)

    SpringBoot面试题及答案 110道(持续更新)最新SpringBoot面试题【附答案解析】SpringBoot面试题及答案,SpringBoot最新面试题及答案,SpringBoot面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是在网上搜集整理的。这些答案难免会存在一些错误,仅供大家参考。如果发现错误还望大家多多包涵,不吝赐教,谢谢~如果不背SpringBoot面试题的答案,肯定面试会挂!这套SpringBoot面试题大全,希望对大家有帮助哈~博主已将以下这些面试题整理成了一个面试手册,是PDF版的1、SpringBo

    2022年5月12日
    39
  • apache 负载均衡_apache部署

    apache 负载均衡_apache部署[1]Apache负载均衡设置方法mod_proxy使用介绍一般来说,负载均衡就是将客户端的请求分流给后端的各个真实服务器,达到负载均衡的目的。还有一种方式是用两台服务器,一台作为主服务器(Master),另一台作为热备份(HotStandby),请求全部分给主服务器,在主服务器当机时,立即切换到备份服务器,以提高系统的整体可 第一次看到这个标题时我也很惊讶,Apache居然还能做负载

    2022年9月9日
    3
  • document的visibilitychange事件

    document的visibilitychange事件有时,你跑到另外一个页面去,回来发现自己的页面出了个bug,如轮播图写出来当你从别的页面在进去,原先的定时器还是会再运行,这样里面的一些值就会改变,看到的效果就不一样, 下面就是解决这个问题的方法。…

    2022年6月18日
    37
  • 网路层协议——IGMP协议「建议收藏」

    网路层协议——IGMP协议「建议收藏」一、组播地址1、IP多播的基本概念①IP多播(以前曾译为组播)已成为互联网的一个热门课题。目的:更好地支持一对多通信,网络中的带宽压力。●一对多通信:一个源点发送到许多个终点。例如,实时信息的交付(如新闻、股市行情等),软件更新,交互式会议及其他多媒体通信。2、组播IP地址的特点①它使用D类IP地址作为目的地址。②组播数据包不产生ICMP差错报文。③组播地址只能用于目的地址而不能用于源地址。3、组播MAC地址…

    2022年9月14日
    5
  • 安装DingoApi「建议收藏」

    安装DingoApi「建议收藏」安装DingoApi

    2022年4月24日
    34

发表回复

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

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