按asc和desc排序的sql

quhf5bfb  于 2021-06-15  发布在  Mysql
关注(0)|答案(4)|浏览(365)

下面的sql语句从 Customers 表,按列排序 Country 以及 CustomerName 但是是什么让我困惑的结果呢,因为国家的结果是好的,因为 ASC -默认情况下,它从a-z开始,以及 CustomerName 应该是asc,但结果不是!所以不是asc,为什么?

1qczuiv0

1qczuiv01#

显示的结果似乎符合指定的顺序。

ORDER BY Country, CustomerName

指定行将首先按的值排序 Country . 结果显示顺序正确:阿根廷、奥地利、比利时、巴西。
对于具有相同值的行 Country ,行也将按的值排序 CustomerName .
同样,具有相同国家/地区值的每组行似乎顺序正确,例如,对于巴西, C... , F... 以及 G... 如果我们指定 ORDER BY CustomerName ,则我们将以不同的顺序获取行。对于示例数据,没有 CustomerName 重复,然后我们可以添加其他表达式到 ORDER BY 这些对行的顺序没有影响。

xfb7svmp

xfb7svmp2#

图中显示的结果是正确的。正如查询指定的那样 ORDER BY Country, CustomerName 然后,按照以下顺序,首先根据国家名称进行排序,对于每个国家,客户按升序进行排序。

kadbb459

kadbb4593#

你的结果是正确的。它先按国家订购,然后按客户名称订购。在阿根廷,您的客户被正确分类。在巴西,它们的分类是正确的。
如果你希望comercio miniero排在第二位,问问自己这会对你所在国家的排序顺序产生什么影响。排序顺序将执行所有第一列,然后在现有顺序中,它将执行列出的第二列。

fnx2tebb

fnx2tebb4#

分类是好的,做它应该做的。
它先按国家分类,然后按客户分类。顾客都很好。。。在每个国家。
仔细看看结果。在阿根廷,客户是有序的,在巴西等。
您希望它同时按两列进行排序的准确程度如何?排序列中的数据将停止与同一行中的数据匹配。e、 g.“大牧场”应该在靠近底部的某个地方,而不是紧挨着它所属的“阿根廷”。
从逻辑上讲,你期待发生的事情毫无意义。

相关问题