SQL Server与Postgresql中的ORDER BY
我试图在一个巨大的数据集上运行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
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很乐意帮忙!