小编典典

在列上使用distinct,并在另一列上执行排序会产生错误

sql

我有一个表:abc_test,列为n_num,k_str。

此查询不起作用:

    select distinct(n_num) from abc_test order by(k_str)

但这是可行的:

    select n_num from abc_test order by(k_str)

DISTINCT和ORDER BY关键字在内部如何工作以使两个查询的输出都被更改?


阅读 97

收藏
2021-04-17

共1个答案

小编典典

据我从你的问题上的理解。

与众不同:-表示选择与众不同(所有选择的值都应该是唯一的)。order By:-仅表示按照您的要求对选定的行进行排序。

您的第一个查询中的问题是例如:我有一张桌子

ID name
01 a
02 b
03 c
04 d 
04 a

现在查询select distinct(ID) from table order by (name)很困惑它应该为ID-04记录(因为那里有两个值d和Name列中的a)。因此,当您说按(名称)订购时,DB引擎的问题就在这里。

2021-04-17