我试图在一个巨大的数据集上运行 ORDER BY 并产生密集的等级值以根据密集等级提取不同的行数。后来,我在整个过程中使用密集等级值作为代理键来继续中间结果并将其进一步用于一些性能测试。
我面临的问题:-
我遇到的问题是我将数据集从 Matrix(postgresql)(PRODUCTION environment) 迁移到 SQL Server(New environment) 并实现了密集秩函数。但是由于 SQL Server 和 Matrix 中的 ORDER BY 子句行为导致的密集排名结果不同,我无法进一步验证代码和结果。
测试示例:-
SELECT *,DENSE_RANK() OVER ( ORDER BY Col ) AS drnk FROM
(
SELECT '#2 Mayfair Terrace' AS Col
UNION
SELECT '#2 MYSTIC COURT' AS Col
)Z;
SQL Server 输出:-
Col drnk
#2 Mayfair Terrace 1
#2 MYSTIC COURT 2
矩阵(Postgresql)输出:-
Col drnk
#2 MYSTIC COURT 1
#2 Mayfair Terrace 2
有人能告诉我为什么 ORDER BY 的行为在两个不同的数据库环境之间存在差异吗?任何帮助,将不胜感激。谢谢。