SELECT ROW_NUMBER ()
OVER (PARTITION BY ChgNumber ORDER BY ChgNumber, InsideID)
NumId,
ChgNumber,
InvoiceNumber
FROM "000".tbChgInvoiceDetail
1 1 1111
2 2
3 3 123
4 1 20100919000003
5 1 20110914000001 13123213213
6 1 20110914000002 112312312312
7 1 20110921000005
8 1 20110921000006
9 1 20110921000039
10 1 20110921000040
11 1 20110921000041
12 1 20110921000083
13 1 20110921000105 21312313
14 1 20110927000001 555
15 2 20110927000001 666
16 1 20111216000004 1985
17 1 20111219000002
18 1 20111219000003
19 1 20111219000008
20 1 20111220000001
21 1 20120221000002
22 1 20120229000004
23 1 20120229000005 124
24 1 20120229000006
25 1 20120229000008 123
26 1 20120331000002
27 1 20120411000001
28 1 20120411000002 11111
29 2 20120411000002 22222
30 1 20120417000001
31 1 20120430000006
32 1 20120430000007
33 1 20120430000008
34 1 20120616000001 1
35 1 20120811000001
36 1 20120811000002
37 1 20120811000003
38 1 20120811000004
39 1 20120811000005
40 2 20120811000005
41 1 20120815000002 123
42 2 20120815000002 124
43 1 20120817000001
44 1 20120820000004
45 1 20120821000002
46 1 20120821000005
47 1 20120821000006
SELECT ChgNumber,
LTRIM (MAX (SYS_CONNECT_BY_PATH (InvoiceNumber, ',')), ',') InvoiceNumber
FROM (SELECT ROW_NUMBER ()
OVER (PARTITION BY ChgNumber ORDER BY ChgNumber, InsideID)
NumId,
ChgNumber,
InvoiceNumber
FROM "000".tbChgInvoiceDetail)
START WITH NumId = 1
CONNECT BY Numid - 1 = PRIOR NumId AND ChgNumber = PRIOR ChgNumber
GROUP BY ChgNumber
1 123, ,1111
2 20100919000003
3 20110914000001 13123213213
4 20110914000002 112312312312
5 20110921000005
6 20110921000006
7 20110921000039
8 20110921000040
9 20110921000041
10 20110921000083
11 20110921000105 21312313
12 20110927000001 555,666
13 20111216000004 1985
14 20111219000002
15 20111219000003
16 20111219000008
17 20111220000001
18 20120221000002
19 20120229000004
20 20120229000005 124
21 20120229000006
22 20120229000008 123
23 20120331000002
24 20120411000001
25 20120411000002 11111,22222
26 20120417000001
27 20120430000006
28 20120430000007
29 20120430000008
30 20120616000001 1
31 20120811000001
32 20120811000002
33 20120811000003
34 20120811000004
35 20120811000005 ,
36 20120815000002 123,124
37 20120817000001
38 20120820000004
39 20120821000002
40 20120821000005
41 20120821000006
简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段:
org_id,parent_id那么通过表示每一条记录的parent是谁,就可以形成一个树状结构。
用上述语法的查询可以取得这棵树的所有记录。
其中:
条件1 是根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树。
条件2 是连接条件,其中用PRIOR表示上一条记录,比如 CONNECT BY PRIOR org_id = parent_id就是说上一条记录的org_id 是本条记录的parent_id,即本记录的父亲是上一条记录。
条件3 是过滤条件,用于对返回的所有记录进行过滤。
自从Since Oracle 9i 开始,就可以通过 SYS_CONNECT_BY_PATH 函数实现将从父节点到当前行内容以“path”或者层次元素列表的形式显示出来。 如下例所示:
在 Oracle 10g 中,还有其他更多关于层次查询的新特性 。例如,有的时候用户更关心的是每个层次分支中等级最低的内容。那么你就可以利用伪列函数CONNECT_BY_ISLEAF来判断当前行是不是叶子。如 果是叶子就会在伪列中显示“1”,如果不是叶子而是一个分支(例如当前内容是其他行的父亲)就显示“0”。下给出了一个关于这个函数使用的例子:
在Oracle 10g 中还有一个新操作——CONNECT_BY_ROOT。 它用在列名之前用于返回当前层的根节点。如下面的例子,我可以显示出层次结构表中当前行数据所对应的最高等级节点的内容。
为了更好的查询一个树状结构的表,在Oracle的PL/SQL中提供乐一个诱人的特性——CONNECT BY子句。它大大的方便了我们查找树状表:遍历一棵树、寻找某个分支……,但还是存在一些不足。在Oracle 10G,就对这个特性做了增强。下面就举例说明一下:CONNECT_BY_ROOT一张表,有多颗子树(根节点为0),现在我想知道每个节点属于哪个子树。举例:铃音目录结构下有多个大分类:中外名曲、流行经典、浪漫舞曲……,每个大类下面又有多个子类,子类下面还可以细分。那现在想要知道每个子类分属哪个大类,或者要统计每个大类下面有多少个子类。看下面的例子,DIRINDEX分别为1、2、3的就是大分类,其他编号的都是子类或孙子类:select dirindex, fatherindex, RPAD(' ', 2*(LEVEL-1)) || dirname from t_tonedirlibstart with fatherindex = 0
json、json-c、jsoncpp是3套不同的代码,其中的函数接口也大不一样,其中jsoncpp针对c++语言编写的。json-c比json要复杂一些,处理、容错能力稍强一些。json-c的api介绍:json_object.h文件常用的api/*增加obj的引用计数*/struct json_object* json_object_get(struct json_object *obj)
REVERSE-COMPETITION-HGAME2022Week1easyasmcreakmeFlag Checker猫头鹰是不是猫Week1easyasm程序一开始将si设置为0,然后si和28比较,如果si小于28则进入循环循环体中,si作为下标,从输入中取值存入al,然后al左移4位,压入栈保持下标si不变,再重新从输入中取一次值存入al,然后al右移4位右移4位后的结果与之前左移4位的结果相加,然后异或0x17,最后与已知比较整个过程相当于将输入中的每一个值的高4位和低4位交换,然
前面讲了《.net中async/await异步编程》,如果方法中使用了多个异步方法,该如何同步的等待Task完成?Task.WaitAll 等待提供的所有 System.Threading.Tasks.Task 对象完成执行过程。DownLoadTest dwtest = new DownLoadTest();CancellationTokenSource cts = new Cancellat..._1671465600
从oracle的在线帮助文档来看,grant的语法其实蛮复杂的,不过根据二八法则,我们只需要掌握grant的常见用法就够用了。grant概述grant 允许对象的创建者给某用户或某组或所有用户(public)某些特定的权限.对象创建后,除了创建者外,除非创建者赋予(grant)其他用户访问权限,否则其他用户没有访问该对象的权限。一旦用户有某对象的权限,他就可以使用那个特权。不需要给创建者赋予(gr...
测试环境启动后,项目A前端访问项目B某接口报错 net::ERR_NAME_NOT_RESOLVED,F12,切到Network看到接口状态如下:切换到Console看到状态如下:怀疑是项目A、B服务器网络不通的问题,结果运维同事在项目A服务器上curl 项目B的接口,返回200,说明网络是通的。。。百思不得其解,网上各种查询也没有相关答案,还以为是Docker机器里DNS解析的问题,,,纠结了一下午,忽然想清楚了,在项目A服务器上curl 项目B的接口,返回200,说明项目A...
Exception in thread "main" java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763...
参考:https://blog.csdn.net/qq583083658/article/details/86321987#2
oepnssl遇到can't open config file: /usr/local/ssl/openssl.cnf解决:1.set OPENSSL_CONF=openssl.cnf2.set OPENSSL_CONF=..目录..\OpenSSL\OpenSSL-Win64\bin\openssl.cfg目录包含openssl.cfg文件下面是成功标志
文章来自网易云计算首席架构师刘超的个人微信公众号,刘超的通俗云计算微服务化之服务拆分与服务发现一、服务拆分的前提二 服务拆分的时机微服务拆分时机一:提交代码频繁出现大量冲突微服务解决的问题之二,就是高并发。微服务拆分时机三:横向扩展流程复杂,主要业务和次要业务耦合微服务拆分时机四:熔断降级全靠if-else三、服务拆分的方法四、服务拆分的规范服务拆分的规范一:服务拆分最多三层,两次调用服务拆分的...
ffmpeg 移植到 android来自大牛:http://blog.csdn.net/voipmaker/article/details/6932696一:生成动态库(.so文件)-->环境:操作系统:Ubuntu9.10ffmpeg源码版本:ffmpeg-0.6.1(可以在http://ffmpeg.org/dow
分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net/* * Created by Chimomo */#include <iostream>using namespace std;char *convertLongToStr(long L) { int i =...
首先介绍一下这篇小代码:注释全面,简单易学,适用初学者,图片自拟!!!一定要将ArrayList集合&Handler机制传到适配器,否则无法完成展示,也解决不了滑动冲突,代码有点多,但是它通俗易懂啊layout布局内写法:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android...