gpt4 book ai didi

SQL:带有 ORDER BY 子句的 SELECT TOP 不返回正确的结果

转载 作者:行者123 更新时间:2023-12-03 18:13:50 31 4
gpt4 key购买 nike

我有一个带有 ORDER BY 子句的 SELECT TOP 查询,它没有返回正确的结果。下面是一个示例查询及其输出。

任何建议/解决方法/解决方案?

查询:

CREATE TABLE #TestTop
(
TopID INT,
TopStr VARCHAR(MAX)
)

INSERT INTO #TestTop VALUES(1749, '');
INSERT INTO #TestTop VALUES(1750, '');
INSERT INTO #TestTop VALUES(1752, 'z');
INSERT INTO #TestTop VALUES(1739, 'a');

SELECT * FROM #TestTop ORDER BY TopStr ASC

SELECT TOP 1 * FROM #TestTop ORDER BY TopStr ASC

SELECT TOP 4 * FROM #TestTop ORDER BY TopStr ASC

DROP TABLE #TestTop;

结果:

[SELECT *]TopID       TopStr----------- -----------1749        1750        1739        a1752        z       [SELECT TOP 1]TopID       TopStr----------- --------------1750        [SELECT TOP 4]TopID       TopStr----------- --------------1750        1749        1739        a1752        z        

最佳答案

您没有指定完整的排序,因此数据库(无论是哪个数据库)有权以它想要的任何顺序返回在 TopStr 上匹配的行。仅仅因为您的第一个查询恰好给出了您想要的顺序是幸运的,并且这可能会根据数据库升级/系统负载/许多其他因素而改变。

如果您希望结果按该列和 TopStr 排序,则需要将 TopId 添加到排序列表中。

关于SQL:带有 ORDER BY 子句的 SELECT TOP 不返回正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24425913/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com