热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sqlserver与java实例_SQL进阶:SQL高级编程语法实例

之前写过的文章:canhui87:Oracle数据统计必会语法知识​zhuanlan.zhihu.com主要是告诉大家学习SQL高级编程的参考路径&#x
a5e248e37b15ed92c26301c2e048d045.png

之前写过的文章:

canhui87:Oracle数据统计必会语法知识​zhuanlan.zhihu.com
68a40eda27d92a43053df79dced889cc.png

主要是告诉大家学习SQL高级编程的参考路径,现在把书里简单的实例代码整理出来,方便以后随时查询使用。深入理解还需要看书学习。

主要参考

《剑破冰山Oracle开发艺术》

《精通Oracle SQL(第2版)》

1 高级分组

grouping sets:集合汇总

grouping sets:集合汇总,对每个子集汇总后合并结果

select

rollup:向上汇总

select

cube:组合汇总

select

2 行转列

传统行转列

select

pivot 行转列

select

unpivot 列转行

select

文本聚合函数listagg()

listagg():文本聚合函数,类似wmsys.wm_concat()函数,listagg可以设置排序,wmsys.wm_concat无序

select

3 分析函数

分析函数结构

func() over(partition by 分组 order by 排序 滑动窗口)

常用分析函数

row_number() 唯一排序

rank() 有跳号并列排名

dense_rank() 无跳号并列排名,值并列排序

lag(字段,1,默认值) 前1行

lead(字段,1,默认值) 后1行

first_value() 第一行

last_value() 最后一行

nth_value(字段,1) 任意一行

percent_rank() 百分比排名,返回0-1间

percentile_cont() 指定百分比,返回排名值,percent_rank的反函数

percentile_disc() 类似percentile_cont(),离散分布

ntile() 分组

ratio_to_report() 计算报告中值的比例:val/sum(val) over()

活动窗口

rows between unbounded preceding and unbounded following:从第一行到最后一行,无order by时默认

rows between unbounded preceding and current row:从第一行到当前行,有order by时默认

rows between 2 preceding and 2 following:前2行到后2行

range between 100 preceding and 100 following:根据order by列的值范围,相当于加条件 where expr between a and b

--计算工资最接近前后2名的均值

KEEP语句

--KEEP :从并列排名最大最小值范围中做选择

4 递归层次查询

connect by层次查询

select level,connect_by_root|connect_by_isleaf|connect_by_iscycle

from tablename

where

connect by prior 列1=列2

start with

order siblings by

--传统connect by法

with层次查询

--with子查询CTE

with 查询名([列名])

as(子查询:锚点成员 union all 递归成员)

[遍历顺序子句:深度优先、广度优先]

[循环子句:终止循环条件]

[多个子查询]

--with子查询法

叶子节点

--叶子节点 connect_by_isleaf伪列

构造序列

select

5 model子句

model子句:单元格跨行引用,类似excel

model跨行引用虽然很灵活,但语法复杂,执行效率慢,只适合在小的汇总报表使用,本人在工作上基本没使用。

select

6 正则表达式

正则函数

regexp_substr(字符串,正则表达式,开始位置,出现次数,匹配选项)

匹配选项,i:大小写不敏感; c:大小写敏感;n:点号 . 不匹配换行符号;m:多行模式;x:扩展模式,忽略正则表达式中的空白字符。

regexp_substr()

regexp_instr()

regexp_replace()

regexp_like()

regexp_count()

Oracle特殊字符集

[[:alpha:]] 任何字母。

[[:digit:]] 任何数字。

[[:alnum:]] 任何字母和数字。

[[:upper:]] 任何大写字母。

[[:lower:]] 任何小写字母。

[[:unct:]] 任何标点符号。

[[:print:]] 任何可打印字符。

[[:space:]] 任何空白字符。

[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]。

7 高级DML

insert多表插入

--同表插入多次

update关联

--当关联不存在,替换成空值

merge语句

merge

8 综合实例

号段生成器

--根据号码明细生成号段分组

9 动态SQL

绑定变量 :x

begin

10 PLSQL

execute immediate语句

dbms_sql包

《Oracle PLSQL 程序设计(第5版)》上下册。



推荐阅读
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • Stringpattern".*"+"a?I'm"+".*";FindIterable<Doc ... [详细]
  • 判断数组是否全为0_连续子数组的最大和的解题思路及代码方法一_动态规划
    本文介绍了判断数组是否全为0以及求解连续子数组的最大和的解题思路及代码方法一,即动态规划。通过动态规划的方法,可以找出连续子数组的最大和,具体思路是尽量选择正数的部分,遇到负数则不选择进去,遇到正数则保留并继续考察。本文给出了状态定义和状态转移方程,并提供了具体的代码实现。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 小程序wxs中的时间格式化以及格式化时间和date时间互转
    本文介绍了在小程序wxs中进行时间格式化操作的问题,并提供了解决方法。同时还介绍了格式化时间和date时间的互相转换的方法。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • Shodan简单用法Shodan简介Shodan是互联网上最可怕的搜索引擎,与谷歌不同的是,Shodan不是在网上搜索网址,而是直接进入互联网的背后通道。Shodan可以说是一款“ ... [详细]
  • excel怎么自动求乘积(平均值公式)
    2、如果使用单元格引用或数组作为Average函数的参数,那么参数必须为数值,其他类型的值将被忽略。功能:计算满足给定条件的所有单元格的算术平均值,即单条件计算平均值。注意实现:1 ... [详细]
author-avatar
mmmm的海角_771
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有