在Oracle中更改文本时更改rownum的SQL查询

在Oracle中更改文本时更改rownum的SQL查询,sql,oracle,select,oracle11g,Sql,Oracle,Select,Oracle11g,我被一个查询卡住了,在这个查询中,我需要将rownum或任何正在运行的序列号更改为原始值,只要它发现第二列的文本发生了更改。 我正在使用Oracle 11g 例如,我的数据是 ________ | EMP_CD | |--------| | D123 | |--------| | D123 | |--------| | D123 | |--------| | F743 | |--------|

我被一个查询卡住了,在这个查询中,我需要将rownum或任何正在运行的序列号更改为原始值,只要它发现第二列的文本发生了更改。 我正在使用Oracle 11g

例如,我的数据是

    ________ 
   | EMP_CD |
   |--------| 
   |  D123  |
   |--------| 
   |  D123  | 
   |--------| 
   |  D123  |
   |--------| 
   |  F743  |
   |--------|  
   |  F743  |
   |________|
所以现在我期待的是

 _______ ________ 
| SR NO | EMP_CD |
|-------|--------| 
|   1   |  D123  |
|-------|--------| 
|   2   |  D123  | 
|-------|--------| 
|   3   |  D123  |
|-------|--------| 
|   1   |  F743  |
|-------|--------|  
|   2   |  F743  |
|_______|________|
您可以使用分析功能:

SELECT ROW_NUMBER() OVER (PARTITION BY emp_cd ORDER BY 1) AS sr_no, emp_cd
FROM   mytable
您可以使用分析功能:

SELECT ROW_NUMBER() OVER (PARTITION BY emp_cd ORDER BY 1) AS sr_no, emp_cd
FROM   mytable
订购方式是可选的


订购依据是可选的。

您可以使用
行号()
分析功能您可以使用
行号()
分析功能谢谢@Mureinik!得到了我想要的。谢谢@Mureinik!得到了我想要的。非常感谢@mathguy非常感谢@mathguy