回答

收藏

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

技术问答 技术问答 386 人阅读 | 0 人回复 | 2023-09-14

我有一个表:abc_test,列为n_num,k_str。0 q9 O4 g% r% i: @5 d( G
此查询不起作用:
" Z" Z4 Z" T$ G: N    select distinct(n_num) from abc_test order by(k_str)
# e3 D% \, X# w1 j" l5 l: [* ]但这是可行的:
# W3 c$ j6 `% L5 {1 _    select n_num from abc_test order by(k_str)1 k5 Z1 x* P$ o4 D
DISTINCT和ORDER BY关键字在内部如何工作以使两个查询的输出都被更改?
9 x$ H9 s6 q% b( c               
3 T; }* I( G3 ~- b' T$ I解决方案:
/ \% [! K- ~7 X                . v- v- V- e  Q7 R/ F: u" C

8 F! x( N1 Y  m$ i- [) m, e. j" U% k0 s0 Y8 g+ B/ H1 O: G$ L
                据我从你的问题上的理解。
7 P5 q% z3 D" i( g2 v- J* F与众不同:-表示选择与众不同(所有选择的值都应该是唯一的)。order By:-仅表示按照您的要求对选定的行进行排序。! T  J( }7 m6 i- q3 R$ a: r
您的第一个查询中的问题是例如:我有一张桌子
9 {5 W3 L* p' i/ I/ k( Z; q/ n0 yID name
6 u9 K+ y; J+ X9 b( F01 a
6 J, _1 _! h  f! h02 b
' Y5 G, H. i% N  U! [6 g03 c/ r( P/ S7 N9 W5 t8 z
04 d / V- K* ?' v6 G8 B" M: I& V
04 a
8 z( [7 G) `. f1 b; j# n% _* b现在查询select distinct(ID) from table order by5 `) j/ {5 [9 s2 r" {8 X; F: D+ ?
(name)很困惑它应该为ID-04记录(因为那里有两个值d和Name列中的a)。因此,当您说按(名称)订购时,DB引擎的问题就在这里。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则