Oracle常用语法

1.递归函数 SELECT ...FROM WHERE (过滤返回记录,仅过滤被限定节点,其根节点和子节点均不受影响) START WITH (根节点,可以指定多个节点) CONNECT BY PRIOR= (连接条件,PRIOR置于等号前,则从根节点到叶节点开始检索;置于等号后,则从叶节点到根节点开始检索)

2.树状&拼接字符串(SYS_CONNECT_BY_PATH(column_name,'分隔符')函数) SYS_CONNECT_BY_PATH(column_name,'分隔符')函数 第一个参数是形成树形式的字段,第二个参数是父级和其子级分隔显示用的分隔符 SUBSTR(SYS_CONNECT_BY_PATH(COLUMN_NAME,','),2) 先连接所有节点,从第二个字符开始截取,字符串用英文逗号隔开,取最完整条目。 此函数必须配合递归SQL使用 例: SELECT * FROM ( SELECT DISTINCT ROLE_NAMES||'-'||ROLE_NAME ROLE_NAME, SUBSTR(SYS_CONNECT_BY_PATH(NAME,','),2) NAME_PATH, LEVEL FROM MAIN PP WHERE PP.PARENT_ID IS NULL START WITH PP.PARENT_ID IS NULL CONNECT BY PRIOR PP.ID=PP.PARENT_ID ) ORDER BY ROLE_NAME,NAME_PATH

3.分组排序 语法格式:row_number() over(partition by 分组列 order by 排序列 desc) row_number() over()分组排序功能: 在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where 、group by、 order by 的执行, 使用row_number()函数进行编号

4.对字符串进行拆分 SELECT REGEXP_SUBSTR(A.METRIC, '[^.]+', 1, 1) AS PROJECT, REGEXP_SUBSTR(A.METRIC, '[^.]+', 1, 2) AS LINE_DESC, REGEXP_SUBSTR(A.METRIC, '[^.]+', 1, 3) AS SECTION_DESC, REGEXP_SUBSTR(A.METRIC, '[^.]+', 1, 4) AS DEVICE_SIGN FROM "BIG_DATA_DEVICE" A WHERE VALUE='true'

5.关联修改表数据 UPDATE "SYS_USER" A,PERSON_INFO B SET A.ESTABID2=B.ESTABID2, A.GD_WING_FLAG=B.GD_WING_FLAG, A.GD_ELITE_FLAG=B.GD_ELITE_FLAG, A.JPM_DESCR90=B.JPM_DESCR90, A.GD_HOME_ADDRESS=B.GD_HOME_ADDRESS, A.GD_SEQUENCE=B.GD_SEQUENCE, A.GD_NATIONALITY=B.GD_NATIONALITY, A.GD_SERV_YEARS_DT=B.GD_SERV_YEARS_DT, A.GD_WORK_PLACE=B.GD_WORK_PLACE, A.GD_MUL_CMMTS=B.GD_MUL_CMMTS WHERE A.EMP_ID=B.EMP_ID

6. 将字段A列表转换成A字符串,并用英文逗号隔开 LISTAGG(A.LINE_CODE, ',') WITHIN GROUP (ORDER BY A.LINE_CODE) AS LINE_CODE,

--------------未完待续------------------

点赞
收藏

评论区

加载中...

相关推荐

java堆排序(大根堆)

实现堆排序的算法思路是先创建堆,也就是从叶子节点起对每一层的孩子节点及其对应位置的父亲节点进行比较,较大的孩子节点替换较小的父亲节点,一级一级比较替换,就创建出了大根堆,小根堆反之。创建好大根堆以后,我们,将整棵树的根节点与最后最后一个节点替换位置,然后去除最后一个节点,在创建一个新的大根堆,以此类推,完成排序。代码如下:/\\\<p堆排

DOM 文档对象模型使用教程来喽!

原文链接:HTML模板html我是网站标题访问节点通过id访问指定节点getElementByIdjavascriptvarnodedocument.getElementById('box')通过name访问指定节点getElementsByNamejav

GoJS API学习

varnode{};node"key""节点Key";node"loc""00";//节点坐标node"text""节点名称";//添加节点通过按钮点击,添加新的节点到画布myDiagram.model.addNodeData(nod

ADVtree

循环第一个根节点(Nodes0)下的子节点(Node)并添加子节点foreach(NodetninclTree1.advTree1.Nodes0.Nodes){NodennewNode();

oracle的start with connect by prior如何使用

oracle的startwithconnectbyprior是根据条件递归查询"树",分为四种使用情况: 第一种:startwith子节点ID'...'connectbyprior子节点ID父节点IDselectfrommdm_organizationostartwitho.org_code'

C语言递归之二叉树的最小深度

https://www.cnblogs.com/shichampion/p/12262678.html题目描述给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例输入:3,9,20,null,null,15,7