Oracle 查询优化改写(第一章)

news/2024/6/19 5:38:29 标签: oracle, 数据库

第一章 单表查询

1.查询空值

2.将空值转换为实际值 

不采用nvl()函数,而使用COALESCE函数语法为COALESCE(表达式1,表达式2,...,表达式n),n>=2,此表达式的功能为返回第一个不为空的表达式,如果都为空则返回空值。
注意:所有表达式必须为同一类型或者能转换成同一类型。

CREATE OR REPLACE VIEW v AS
SELECT NULL AS C1, NULL AS C2, 1 AS C3, NULL AS C4, 2 AS C5, NULL AS C6 FROM tmp
UNION ALL
SELECT NULL AS C1, NULL AS C2, NULL AS C3, 8 AS C4, NULL AS C5, 5 AS C6 FROM tmp;
 
 
SQL> select * from v;
 
C1     C2        C3           C4      C5         C6
- - ---------- ---------- ---------- ----------
                 1            2
                 8            5
 --COALESCE使用
SQL> SELECT COALESCE(C1, C2, C3, C4, C5, C6) AS c FROM V;
 
     C
----------
     1
     8

 --用nvl函数
SELECT nvl(nvl(nvl(nvl(nvl(c1, c2), c3), c4), c5), c6) AS c FROM v;

总结:
NVL:如果第一个值为NULL取默认值,默认值是自己赋值上去的是个常数。支持两个参数。其本质是个函数。
coalesce:如果第一个参数为空就取第二个参数的值,第二个参数可以为常数也可以为表达式(字段,语句等)。以此类推,支持多个参数。更常用,其本质是个语句,更像个if语句,效率更高,建议使用。


3.在where子句中引用取别名的列

 4.在select语句中使用条件逻辑

有时为了更加清楚的地区分返回的信息,需要做如下处理:

 

 5.限制返回的行数

6.从表中随机返回N条记录

先生成随机排序,再取出数据。

 

 7.模糊查询

 

参考文献:Oracle查询优化改写技巧与案例2.0  作  译  者:有教无类,落落


http://www.niftyadmin.cn/n/427361.html

相关文章

开源数字人、虚拟直播部署教程

TheRamU/Fay: 语音互动,直播自动带货 虚拟数字人 (github.com) gitee fay: 这是一个数字人项目,包含python内核及ue数字人模型,可以用于做数字助理及自动直播,又或者作为你的应用入口也很帅 (gitee.com) 2022.10.27 补充mac上的安装办法:(34条消息) Fay数字人开源项目…

mqtt.fx连接阿里云物联网平台

这里写目录标题 注册公共示例创建产品添加设备创建云产品流转生成基本信息配置mqtt.fx客户端数据传送 前提条件:下载mqtt.fx软件,以及注册好阿里云物联网平台账号 本实验用两个mqtt.fx客户端接入阿里云物联网平台,来实现不同设备间消息的传输…

微信(支付)二维码的生成(前端方向)

以csdn的微信登录为例子 1、发起请求,获取微信二维码的 QR code 这个请求一般返回两个字段 QR url () 订单号 / token () 然后通过 QR url 生成 QR code(二维码),用某个库去生成…

利用Matlab的声音函数和音乐理论知识演奏音乐——探索人工智能音乐生成的奇妙之旅

CSDN文章篇一:利用Matlab的声音函数和音乐理论知识演奏音乐——探索人工智能音乐生成的奇妙之旅 在这个高科技的世界里,音乐的世界也并没有被孤立出来。今天,我将向您介绍一种非常特别的方法,将计算机编程与音乐相结合&#xff0…

基于BES DSP AEC(回声消除)算法C语言程序实现

+hezkz17进数字音频系统研究开发交流答疑 基于 DSP AEC回声消除算法C语言程序实现(时域+頻域)  2023/6/13 上午12:30:16 对于AEC(Acoustic Echo Cancellation)即声学回音消除算法,其基本思路是在语音通话过程中,利用扬声器播放出的语音信号作为参考信号,并采用一定的滤…

chatgpt赋能python:Python怎么建服务器?

Python怎么建服务器? 作为一名具有10年Python编程经验的工程师,我深入研究了Python的一些高级特性,其中包括Python如何建立服务器的方法。Python是一个高级的编程语言,可以轻松创建服务器应用程序,并为您的网站提供高…

chatgpt赋能python:Python如何开三次方根

Python如何开三次方根 Python是一种强大的编程语言,它被广泛用于数据科学、机器学习、Web开发和自动化等领域。在这篇文章中,我们将介绍如何用Python开三次方根。 什么是三次方根? 三次方根是一个数学术语,表示一个数的立方根。…

vue项目中flv格式的视频流播放

<template><div class"livePlayerContainer"><!-- LivePlayer使用 --><div class"livePlayerBox" style"position: relative"><!-- :aspect"16:9" --><!-- custom-buttons"极速/流畅, 拉伸/标准…