下面的sql语句从 Customers 表,按列排序 Country 以及 CustomerName 但是是什么让我困惑的结果呢,因为国家的结果是好的,因为 ASC -默认情况下,它从a-z开始,以及 CustomerName 应该是asc,但结果不是!所以不是asc,为什么?
Customers
Country
CustomerName
ASC
1qczuiv01#
显示的结果似乎符合指定的顺序。
ORDER BY Country, CustomerName
指定行将首先按的值排序 Country . 结果显示顺序正确:阿根廷、奥地利、比利时、巴西。对于具有相同值的行 Country ,行也将按的值排序 CustomerName .同样,具有相同国家/地区值的每组行似乎顺序正确,例如,对于巴西, C... , F... 以及 G... 如果我们指定 ORDER BY CustomerName ,则我们将以不同的顺序获取行。对于示例数据,没有 CustomerName 重复,然后我们可以添加其他表达式到 ORDER BY 这些对行的顺序没有影响。
C...
F...
G...
ORDER BY CustomerName
ORDER BY
xfb7svmp2#
图中显示的结果是正确的。正如查询指定的那样 ORDER BY Country, CustomerName 然后,按照以下顺序,首先根据国家名称进行排序,对于每个国家,客户按升序进行排序。
kadbb4593#
你的结果是正确的。它先按国家订购,然后按客户名称订购。在阿根廷,您的客户被正确分类。在巴西,它们的分类是正确的。如果你希望comercio miniero排在第二位,问问自己这会对你所在国家的排序顺序产生什么影响。排序顺序将执行所有第一列,然后在现有顺序中,它将执行列出的第二列。
fnx2tebb4#
分类是好的,做它应该做的。它先按国家分类,然后按客户分类。顾客都很好。。。在每个国家。仔细看看结果。在阿根廷,客户是有序的,在巴西等。您希望它同时按两列进行排序的准确程度如何?排序列中的数据将停止与同一行中的数据匹配。e、 g.“大牧场”应该在靠近底部的某个地方,而不是紧挨着它所属的“阿根廷”。从逻辑上讲,你期待发生的事情毫无意义。
4条答案
按热度按时间1qczuiv01#
显示的结果似乎符合指定的顺序。
指定行将首先按的值排序
Country
. 结果显示顺序正确:阿根廷、奥地利、比利时、巴西。对于具有相同值的行
Country
,行也将按的值排序CustomerName
.同样,具有相同国家/地区值的每组行似乎顺序正确,例如,对于巴西,
C...
,F...
以及G...
如果我们指定ORDER BY CustomerName
,则我们将以不同的顺序获取行。对于示例数据,没有CustomerName
重复,然后我们可以添加其他表达式到ORDER BY
这些对行的顺序没有影响。xfb7svmp2#
图中显示的结果是正确的。正如查询指定的那样
ORDER BY Country, CustomerName
然后,按照以下顺序,首先根据国家名称进行排序,对于每个国家,客户按升序进行排序。kadbb4593#
你的结果是正确的。它先按国家订购,然后按客户名称订购。在阿根廷,您的客户被正确分类。在巴西,它们的分类是正确的。
如果你希望comercio miniero排在第二位,问问自己这会对你所在国家的排序顺序产生什么影响。排序顺序将执行所有第一列,然后在现有顺序中,它将执行列出的第二列。
fnx2tebb4#
分类是好的,做它应该做的。
它先按国家分类,然后按客户分类。顾客都很好。。。在每个国家。
仔细看看结果。在阿根廷,客户是有序的,在巴西等。
您希望它同时按两列进行排序的准确程度如何?排序列中的数据将停止与同一行中的数据匹配。e、 g.“大牧场”应该在靠近底部的某个地方,而不是紧挨着它所属的“阿根廷”。
从逻辑上讲,你期待发生的事情毫无意义。