在基于数据的情况下,为现有列添加身份值

3

我有一个表格,其数据排列如下:

enter image description here

在这个表格中,existing_order是表格被有意设计的顺序。然而,由于不一致性,我想要添加一个名为“行号”的列,类似于每个CID编号都重新开始的标识列。我希望得到的数据如下所示:

enter image description here

我可以在 Fiddler 中创建一个快速解决方案并很快分享。任何帮助都将不胜感激!
Rextester 链接:http://rextester.com/live/TWO92019

身份验证不像你在这里提到的那样工作。它不会根据另一列的值“重置”,也不会保留不同的种子。你的选择是手动设置排名并通过触发器进行更新,但似乎最好根据需要计算此值而不是存储它(除非您有其他需要它的业务流程)。 - EzLo
1个回答

3

使用row_number()函数:

select *, row_number() over (partition by CID, PDI order by Agent) as LineNo
from table t;

然而,我并不依赖于 PDI,因此如果需要,可以从 partition 子句中删除它。


我想编辑表结构以添加此列。不仅仅是选择查询。 - Rick
@Rick. . . 然后修改表结构,添加具有“null”约束的LineNo列,并使用“update”语句。你正在正确的路上。 - Yogesh Sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接