我有下表。
| NumRegOper | 正則 |
|---|---|
| 2067914121937973 | 1 |
| 2074206165945447 | 2 |
| 2074206165945447 | 3 |
| 2067914121937973 | 4 |
| 2074206165945098 | 5 |
如果我使用這個腳本:
select ROW_NUMBER() OVER (order by NumRegOper desc) as NewOrder
, *
from #tmp
我得到了這個結果:
| 新命令 | NumRegOper | 正則 |
|---|---|---|
| 1 | 2074206165945447 | 2 |
| 2 | 2074206165945447 | 3 |
| 3 | 2074206165945098 | 5 |
| 4 | 2067914121937973 | 1 |
| 5 | 2067914121937973 | 4 |
但我想要的是當它具有相同的 NumRegOper 識別符號時保持相同的“NewOrder”。像這樣:
| 新命令 | NumRegOper | 正則 |
|---|---|---|
| 1 | 2074206165945447 | 2 |
| 1 | 2074206165945447 | 3 |
| 2 | 2074206165945098 | 5 |
| 3 | 2067914121937973 | 1 |
| 3 | 2067914121937973 | 4 |
有沒有辦法在 SQL Server 中做到這一點?
uj5u.com熱心網友回復:
正如 John Cappelletti 在評論中所說,以下內容將為您提供所需的結果:
select DENSE_RANK() OVER(order by NumRegOper desc) as NewOrder ,* from #tmp
uj5u.com熱心網友回復:
您需要指定“PARTITION BY”引數才能獲得所需的結果。ROW_NUMBER 檔案
select ROW_NUMBER() OVER(PARTITION BY NumRegOper order by NumRegOper desc) as NewOrder ,* from #tmp
運行這些查詢有助于您更好地理解。
select ROW_NUMBER() OVER() Wrong_RN, * from #tmp order by NumRegOper desc
select ROW_NUMBER() OVER() Right_RN, * from #tmp GROUP BY NumRegOper order by NumRegOper desc
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/363536.html
標籤:sql sql-server 查询语句
上一篇:多列中的完整外部聯接
