SQL Server与Postgresql中的ORDER BY

SQL Server与Postgresql中的ORDER BY,sql,sql-server,postgresql,sql-order-by,dense-rank,Sql,Sql Server,Postgresql,Sql Order By,Dense Rank,我试图在一个巨大的数据集上运行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; Col

我试图在一个巨大的数据集上运行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;
Col                drnk
#2 Mayfair Terrace  1
#2 MYSTIC COURT     2
Col                drnk
#2 MYSTIC COURT     1
#2 Mayfair Terrace  2
我遇到的问题是,我将数据集从Matrix(postgresql)(生产环境)迁移到SQL Server(新环境)并实现了稠密秩函数。但是由于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;
Col                drnk
#2 Mayfair Terrace  1
#2 MYSTIC COURT     2
Col                drnk
#2 MYSTIC COURT     1
#2 Mayfair Terrace  2
SQL Server输出:-

SELECT *,DENSE_RANK() OVER ( ORDER BY Col ) AS drnk FROM 
(
SELECT '#2 Mayfair Terrace' AS Col
UNION 
SELECT '#2 MYSTIC COURT' AS Col
)Z;
Col                drnk
#2 Mayfair Terrace  1
#2 MYSTIC COURT     2
Col                drnk
#2 MYSTIC COURT     1
#2 Mayfair Terrace  2
矩阵(Postgresql)输出:-

SELECT *,DENSE_RANK() OVER ( ORDER BY Col ) AS drnk FROM 
(
SELECT '#2 Mayfair Terrace' AS Col
UNION 
SELECT '#2 MYSTIC COURT' AS Col
)Z;
Col                drnk
#2 Mayfair Terrace  1
#2 MYSTIC COURT     2
Col                drnk
#2 MYSTIC COURT     1
#2 Mayfair Terrace  2

有人能告诉我为什么在两个不同的数据库环境中ORDER BY的行为有所不同吗?任何帮助都将不胜感激。谢谢。

这是由不同的排序引起的。试用

返回

+--------------------+------+
|        col         | drnk |
+--------------------+------+
| #2 MYSTIC COURT    |    1 |
| #2 Mayfair Terrace |    2 |
+--------------------+------+
雷克斯测试仪:

返回

+--------------------+------+
|        col         | drnk |
+--------------------+------+
| #2 LaYSTIC COURT   |    1 |
| #2 MYSTIC COURT    |    2 |
| #2 Mayfair Terrace |    3 |
| #2 NAYSTIC COURT   |    4 |
| #2 NaYSTIC COURT   |    5 |
+--------------------+------+

这是一个整理问题。谢谢。。我需要为每一列添加它来避免这个问题吗?对于order by中的所有字符列,yesWorks很棒。非常感谢:)@Teja很乐意帮忙!