行的顺序编号

时间:2012-03-23 13:05:11

标签: sql row

我必须自定义SQL视图才能执行系统集成测试。一个表跟踪事务和每个事务的LINE ITEMS(例如,事务2有三个项目,因此有三个连续的行对应于相同的事务编号)我需要完成的是获取一个我跟踪的列对于每笔交易,该交易的项目数量始终为1。

例如,第一列为TransactionNumber,第二列为DesiredOutput

1                    1
1                    2
2                    1
2                    2
2                    3
3                    1
4                    1
4                    2

... ETC

我知道如何在WHOLE表上对连续的行进行编号,但我找不到对此编号的任何引用,这取决于另一行的值。

1 个答案:

答案 0 :(得分:2)

对于SQL Server 2005+和Oracle,您可以使用以下内容:

SELECT TransNumber, ROW_NUMBER() OVER(PARTITION BY Transnumber ORDER BY Something) [DESIRED COLUMN OUTPUT]
FROM YourTable