当前位置: 首页 > news >正文

选读SQL经典实例笔记20_Oracle语法示例

 

1. 计算一年有多少天

1.1.  sql

select 'Days in 2005: '||to_char(add_months(trunc(sysdate,'y'),12)-1,'DDD')as reportfrom dualunion allselect 'Days in 2004: '||to_char(add_months(trunc(to_date('01-SEP-2004'),'y'),12)-1,'DDD')from dual
REPORT
-----------------
Days in 2005: 365
Days in 2004: 366

2. 查找含有数字和字母的字符串

2.1. sql

with v as (
select 'ClassSummary' strings from dual union
select '3453430278'           from dual union
select 'findRow 55'           from dual union
select '1010 switch'          from dual union
select '333'                  from dual union
select 'threes'               from dual
)
select stringsfrom (
select strings,translate(strings,'abcdefghijklmnopqrstuvwxyz0123456789',rpad('#',26,'#')||rpad('*',10,'*')) translatedfrom v) xwhere instr(translated,'#') > 0and instr(translated,'*') > 0

3. 把整数转换成二进制

3.1. sql

ENAME        SAL SAL_BINARY
---------- ----- --------------------
SMITH        800 1100100000
ALLEN       1600 11001000000
WARD        1250 10011100010
JONES       2975 101110011111
MARTIN      1250 10011100010
BLAKE       2850 101100100010
CLARK       2450 100110010010
SCOTT       3000 101110111000
KING        5000 1001110001000
TURNER      1500 10111011100
ADAMS       1100 10001001100
JAMES        950 1110110110
FORD        3000 101110111000
MILLER      1300 10100010100

3.2. sql

select ename,sal,(select binfrom dualmodeldimension by ( 0 attr )measures ( sal num,cast(null as varchar2(30)) bin,'0123456789ABCDEF' hex)rules iterate (10000) until (num[0] <= 0) (bin[0] = substr(hex[cv()],mod(num[cv()],2)+1,1)||bin[cv()],num[0] = trunc(num[cv()]/2))) sal_binaryfrom emp

4. 标量子查询转换为复合子查询

4.1. sql

select e.deptno,e.ename,e.sal,(select d.dname,d.loc,sysdate todayfrom dept dwhere e.deptno=d.deptno)from emp e

4.2. SELECT列表里的子查询只允许返回一个值

4.3. sql

create type generic_objas object (val1 varchar2(10),val2 varchar2(10),val3 date
);

4.3.1. 对象类型

4.4.  sql

select x.deptno,x.ename,x.multival.val1 dname,x.multival.val2 loc,x.multival.val3 todayfrom (select e.deptno,e.ename,e.sal,(select generic_obj(d.dname,d.loc,sysdate+1)from dept dwhere e.deptno=d.deptno) multivalfrom emp e) x
DEPTNO ENAME      DNAME      LOC        TODAY
------ ---------- ---------- ---------- -----------20 SMITH      RESEARCH   DALLAS     12-SEP-200530 ALLEN      SALES      CHICAGO    12-SEP-200530 WARD       SALES      CHICAGO    12-SEP-200520 JONES      RESEARCH   DALLAS     12-SEP-200530 MARTIN     SALES      CHICAGO    12-SEP-200530 BLAKE      SALES      CHICAGO    12-SEP-200510 CLARK      ACCOUNTING NEW YORK   12-SEP-200520 SCOTT      RESEARCH   DALLAS     12-SEP-200510 KING       ACCOUNTING NEW YORK   12-SEP-200530 TURNER     SALES      CHICAGO    12-SEP-200520 ADAMS      RESEARCH   DALLAS     12-SEP-200530 JAMES      SALES      CHICAGO    12-SEP-200520 FORD       RESEARCH   DALLAS     12-SEP-200510 MILLER     ACCOUNTING NEW YORK   12-SEP-2005

4.5. 对象本身是一个标量值,它并不会违反标量子查询的规则

5. 解析串行化的数据

5.1. sql

 STRINGS
-----------------------------------
entry:stewiegriffin:lois:brian:
entry:moe::sizlack:
entry:petergriffin:meg:chris:
entry:willie:
entry:quagmire:mayorwest:cleveland:
entry:::flanders:
Entry:robo:tchi:ken:

5.1.1. sql

create view Vas
select 'entry:stewiegriffin:lois:brian:' stringsfrom dualunion all
select 'entry:moe::sizlack:'from dualunion all
select 'entry:petergriffin:meg:chris:'from dualunion all
select 'entry:willie:'from dualunion all
select 'entry:quagmire:mayorwest:cleveland:'from dualunion all
select 'entry:::flanders:'from dualunion all
select 'entry:robo:tchi:ken:'from dual

5.2. sql

 VAL1            VAL2            VAL3
--------------- --------------- ---------------
moe                         sizlack
petergriffin    meg         chris
quagmire        mayorwest   cleveland
robo            tchi        ken
stewiegriffin   lois        brian
willieflanders

5.2.1.  sql

with cartesian as (select level idfrom dualconnect by level <= 100)select max(decode(id,1,substr(strings,p1+1,p2-1))) val1,max(decode(id,2,substr(strings,p1+1,p2-1))) val2,max(decode(id,3,substr(strings,p1+1,p2-1))) val3from (select v.strings,c.id,instr(v.strings,':',1,c.id) p1,instr(v.strings,':',1,c.id+1)-instr(v.strings,':',1,c.id) p2from v, cartesian cwhere c.id <= (length(v.strings)-length(replace(v.strings,':')))-1)group by stringsorder by 1

6. 计算比重

6.1. Oracle支持内置函数RATIO_TO_REPORT

6.2. sql

select job,num_emps,sum(round(pct)) pct_of_all_salariesfrom (
select job,count(*)over(partition by job) num_emps,ratio_to_report(sal)over()*100 pctfrom emp)group by job,num_emps

7. 正则表达式功能

7.1. Oracle Database 10g

7.2. sql

select emp_id, textfrom employee_commentwhere regexp_like(text, '[0-9]{3}[-. ][0-9]{3}[-. ][0-9]{4}')and regexp_like(regexp_replace(text,'[0-9]{3}([-. ])[0-9]{3}\1[0-9]{4}',''),'[0-9]{3}[-. ][0-9]{3}[-. ][0-9]{4}')EMP_ID TEXT
---------- ----------------------------------------------------------7369 126 Varnum, Edmore MI 48829, 989 313-53517844 989-387.53599999 906-387-1698, 313-535.8886

相关文章:

选读SQL经典实例笔记20_Oracle语法示例

1. 计算一年有多少天 1.1. sql select Days in 2005: ||to_char(add_months(trunc(sysdate,y),12)-1,DDD)as reportfrom dualunion allselect Days in 2004: ||to_char(add_months(trunc(to_date(01-SEP-2004),y),12)-1,DDD)from dual REPORT ----------------- Days in 200…...

JAVA细节/小技巧

一、 Callable类可以实现返回结果的多线程。实现Callable类,然后实例化一个对象传递给FutureTask,然后把FutureTask对象传递给Thread对象,执行start即可开始多线程。FutureTask对象执行get函数可以获得Callable类中call函数的返回值&#xf…...

jmeter如何压测和存储

一、存储过程准备: 1、建立一个空表: 1 CREATE TABLE test_data ( id NUMBER, name VARCHAR2(50), age NUMBER ); 2、建立一个存储过程: 1 2 3 4 5 6 7 8 9 CREATE OR REPLACE PROCEDURE insert_test_data (n IN NUMBER) AS BEGIN --E…...

一个月学通Python(三十三):Python并发编程在爬虫中的应用

专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 再推荐一下最近热更的:《大厂测试高频面试题详解》 该专栏对…...

HCIP——STP

STP 一、STP概述二、二层环路带来的问题1、广播风暴问题2、MAC地址漂移问题3、多帧复制 三、802.1D生成树STP的BPDU1、配置BPDU2、RPC3、COST4、配置BPDU的工作过程5、TCN BPDU6、TCN BPDU的工作原理 四、STP的角色五、STP角色选举六、STP的接口状态七、接口状态的迁移八、STP的…...

【数据结构】“单链表”的练习题

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...

项目实战 — 消息队列(5){统一硬盘操作}

前面已经使用数据库管理了交换机、绑定、队列,然后又使用了数据文件管理了消息。 那么,这里就创建一个类,讲之前的两个部分整合起来,对上层提供统一的一套接口,表示硬盘上存储的所有的类的信息。 /* * 用这个类来管理…...

【2.2】Java微服务:Hystrix的详解与使用

目录 分布式系统面临问题 Hystrix概念 Hystrix作用 降级 什么是降级 order服务导入Hystrix依赖(简单判断原则:谁调用远程谁加) 启动类添加注解 业务方法添加注解(冒号里填回调方法名,回调方法返回兜底数据&…...

【PYTHON】WebSocket服务端与客户端通信实现

目录 1 简介 2 WebSocket优点 3 前后端交互的方式 4 心跳机制和重连机制 5 后端代码 6 测试...

Runloop 的五种mode

1.runloop是一个事件驱动的循环,收到事件就去处理,没有事件就进入睡眠. 2.应用一启动主线程被创建后,主线程对应的runloop也被创建,runloop也保证了程序能够一直运行.之后创建的子线程默认是没有runloop的,只有当调用[NSRunLoop currentRunLoop]去获取的时候才被创建. 3.runloo…...

C++头文件使用精要

一、头文件包含顺序 根据《Google C 编程风格指南》,对于Foo.cpp,顺序推荐为: Foo.hC标准库C标准库其它库的头文件本工程的头文件 另外,在包含头文件时应该加上头文件所在工程的文件夹名,可区分重名文件。即假如你有…...

Flink之SideOutput(数据分流)

Flink在早期版本有一个split算子用来做数据分流使用的,但是在flink-1.12开始这个API就已经被删除了,在1.12版本以后我们是通过process算子来做数据分流的,这里就介绍一下如何使用prodess进行数据分流. 代码 import org.apache.flink.api.common.typeinfo.TypeInformation; im…...

Android Studio新版本logcat过滤说明

按包名过滤 //输入package:(输入一个p就会有提示的) ,后面加上包名 比如: package:com.xal.runcontrol package:包名可以完整或者输部分包名即可 package:包名需要输完整准确 package~:正则表达式过滤 不了解正则表达式的可以参考&#…...

carsim与matlab仿真

matlab2021a安装教程,亲测。 百度网盘: matlab2021a安装包 提取码:1223 CarSim2020安装教程, 亲测。 百度网盘: CarSim2020安装包 提取码:1223 ,破解可参考 b站视频...

rust里如何快速实现一个LRU 本地缓存?

LRU是Least Recently Used(最近最少使用)的缩写,是一种常见的缓存淘汰算法。LRU算法的基本思想是,当缓存空间已满时,优先淘汰最近最少使用的数据,以保留最常用的数据。 在计算机系统中,LRU算法…...

MQTT 订阅接收消息 mosquitto 方式

1 说明 采用 mosquitto 库,实现订阅主题,并接收消息。其中服务器有做限制,需要对应的 cilent id ,cafile 、certfile 、keyfile 等配置2 环境 采用ubuntu 直接编译调试 安装mosquitto 库 sudo apt install libmosquitto-dev su…...

以mod_jk方式整合apache与tomcat(动静分离)

前言: 为什么要整合apache和tomcat apache对静态页面的处理能力强,而tomcat对静态页面的处理不如apache,整合后有以下好处 提升对静态文件的处理性能 利用 Web 服务器来做负载均衡以及容错 更完善地去升级应用程序 jk整合方式介绍&#…...

springboot动态数据源切换

1)、就是将多个数据源全部注入到bean中,根据需要实现多数据源之间的切换。 2)、使用baomidou的DS注解。见文章DS注解实现数据源动态切换 com.baomidou dynamic-datasource-spring-boot-starter 3.5.1 ##设置默认的数据源或者数据源组,默认值…...

代码随想录训练营day14

101. 对称二叉树 给你一个二叉树的根节点 root , 检查它是否轴对称。 func isSymmetric(root *TreeNode) bool {if root nil{ return true}return judge(root.Left,root.Right) }func judge(lf *TreeNode , ri *TreeNode)bool{if lf nil && ri nil{ retu…...

功能测试进阶自动化测试如何摸清学习方向,少走弯路呢?

目录 抛开疑问,只做学术探讨 小白在想什么? 盖楼之前先打好地基,首先需要学习一门语言 语言入门后,正式踏上开始自动化成神之路,入门篇Selenium 玩腻了Selenium 开始接触自动化框架unittest/testNG 不满足于单元…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...