选读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函数的返回值…...
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 不满足于单元…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL
ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...
《Offer来了:Java面试核心知识点精讲》大纲
文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...
HTTPS证书一年多少钱?
HTTPS证书作为保障网站数据传输安全的重要工具,成为众多网站运营者的必备选择。然而,面对市场上种类繁多的HTTPS证书,其一年费用究竟是多少,又受哪些因素影响呢? 首先,HTTPS证书通常在PinTrust这样的专业平…...
PostgreSQL 与 SQL 基础:为 Fast API 打下数据基础
在构建任何动态、数据驱动的Web API时,一个稳定高效的数据存储方案是不可或缺的。对于使用Python FastAPI的开发者来说,深入理解关系型数据库的工作原理、掌握SQL这门与数据库“对话”的语言,以及学会如何在Python中操作数据库,是…...
Ray框架:分布式AI训练与调参实践
Ray框架:分布式AI训练与调参实践 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 Ray框架:分布式AI训练与调参实践摘要引言框架架构解析1. 核心组件设计2. 关键技术实现2.1 动态资源调度2.2 …...
【Redis】Redis从入门到实战:全面指南
Redis从入门到实战:全面指南 一、Redis简介 Redis(Remote Dictionary Server)是一个开源的、基于内存的键值存储系统,它可以用作数据库、缓存和消息代理。由Salvatore Sanfilippo于2009年开发,因其高性能、丰富的数据结构和广泛的语言支持而广受欢迎。 Redis核心特点:…...
