首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在视图中的PLSQL行中添加重置计数器(在列的值更改时重置)

在视图中的PLSQL行中添加重置计数器(在列的值更改时重置)
EN

Stack Overflow用户
提问于 2014-04-16 16:15:21
回答 1查看 5.4K关注 0票数 1

我正在使用PL SQL developer和Oracle 11g。以下是我的问题:

编辑

它看起来像使用秩(按标头号划分,按日期排列行号)起作用。

我想要创建一个计数器,每次列有与上一列不同的值时都会进行更改。我需要能够在视图(不可修改的约束)中这样做。目标是使用此计数器在该视图中构建一个新的唯一键。因此,每次计划表中的行号发生变化时,我都需要重置“计数器”(见下文)。

我有三张桌子。在每个表下,我都放了一些重要的栏:

标题--标题编号(唯一)

细节--头号码(不是唯一的)--线条编号(唯一)

规划线--头号(不是唯一的)--线号(不是唯一的)--一些日期

在计划线表中,有多条线,每一行数也有。我想要构建成一个视图(这是一个约束,它必须是一个视图),能够从规划的行号构建一个唯一的编号。

以下是一些示例数据:

代码语言:javascript
复制
Header (1 row):
Header Number = 1

Detail (2 rows)
Header Number = 1, LineNumber = 1
Header Number = 1, LineNumber = 2

Planning (4 rows)
Header Number = 1, Line number = 1, date = 01/01/14
Header Number = 1, Line number = 1, date = 01/02/14
Header Number = 1, Line Number = 2, date = 01/01/14
Header Number = 1, Line Number = 2, date = 01/03/14

我希望它看起来像这样:

代码语言:javascript
复制
HeaderNumber   |   Line Number   |   'Counter' (What I am trying to create)
1              |        1        |       1
1              |        1        |       2  
1              |        2        |       1
1              |        2        |       2

以下是我所面临的一些最后问题:

它似乎不像我可以使用行号--视图将包含多个标题,更重要的是,行号似乎是从整个select的内容中构建出来的-因此我无法对其进行修剪。最后一行数为1,2,3,4 (上列)。

有没有人知道如何将其构建成一个select (放到视图中)?我知道这可以通过一个程序,但我真的需要一个看法。

致以敬意,

严重困惑的人

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-16 16:43:52

我不知道你在说“行号”时到底试过什么--你是指ROWNUM还是row_number()

这不是做你想做的吗?

代码语言:javascript
复制
select headernumber, linenumber, 
       row_number() over (partition by headernumber order by linenumber)
          as counter
from   ...;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23114837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档