ORDER BY 查询给出两个不同的输出

ORDER BY query giving two different outputs

我有一个学生 table 在 [姓名、地址、TotalFees] 列中有 8 条记录。

即使我在单个 table 上执行两个相同的 ORDER BY 查询,我也会得到两个不同的输出。我附上了下面的截图。

相同 table 的相同查询具有不同的输出:

您遇到的问题是 order by 的键没有唯一地定义每一行。特别是,"khar" 对大多数行重复(您的结果表明您使用的是不区分大小写的排序规则)。

在SQL 数据库中,排序不稳定。稳定排序是使用相同键保留值的原始排序的排序。因为排序不稳定,结果 - 对于相同的键 - 可以以任何顺序出现。

为什么排序不稳定?回想起来这很容易。 SQL 表和结果集表示 无序 集。没有初始排序,排序不稳定

解决此问题的正常方法是在 order by 中包含一个唯一 ID 作为最终键:order by address, id。但是,对于您的数据,不清楚唯一键是什么。

地址和姓名的组合不会产生重复,所以您可以试试这个,

select *From student
order by address,name

select top 3 * From student
order by address,name