考虑下面两个表:DISTINCT如何与ORDER BY交互?
user:
ID | name
---+--------
1 | Alice
2 | Bob
3 | Charlie
event:
order | user
------+------------
1 | 1 (Alice)
2 | 2 (Bob)
3 | 3 (Charlie)
4 | 3 (Charlie)
5 | 2 (Bob)
6 | 1 (Alice)
如果我运行下面的查询:
SELECT DISTINCT user FROM event ORDER BY "order" DESC;
将它保证我得到以下顺序的结果?
1 (Alice)
2 (Bob)
3 (Charlie)
如果选择的event
最后三个行,我知道这是我得到的命令,因为它会按递减顺序排序4,5,6。但是,如果前三行被选中,然后DISTINCT
阻止最后一棵树被加载考虑,我会得到它倒序。
这种行为在SQL中是否定义良好?哪两个会发生?在SQLite中怎么样?
使用'distinct'关键字时,您不能在'select'中使用'order by'列。我不确定您的查询是否有效。 –
为什么不通过'user'而不是'order'命令? – axblount
引用来自SQLite的[Order By](http://sqlite.com/lang_select.html)* Order By Clause * - “如果返回多个行的SELECT语句没有ORDER BY子句,则未定义返回行的顺序。“ – t0mm13b