Dense_Rank 考虑了一切。有没有办法排除空值,所以 1 之后的下一个排名将是 2 而不是 3。
这是表格现在的样子:
A | DENSE_R
--------------
1 | 1
--------------
2 | null
--------------
3 | 3
--------------
4 | 4
这就是我希望表格的样子:
A | DENSE_R
--------------
1 | 1
--------------
2 | null
--------------
3 | 2
--------------
4 | 3
我正在使用以下代码来执行此操作:-
WITH CTE AS
(
SELECT A
FROM A1
)
SELECT A,
CASE
WHEN **Condition**
THEN DENSE_RANK() OVER (Order by [A] ASC)
END
AS 'DENSE_R'
FROM CTE