【发布时间】:2012-01-18 06:01:20
【问题描述】:
我有一张桌子: 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 关键字在两个查询的输出都发生变化时如何在内部工作?
【问题讨论】:
-
如果你运行这两个查询,你能显示结果吗?第一个查询应返回错误
ORA-01791: not a SELECTed expression,因为未选择k_str列。这是您运行的实际查询吗? (在 9i 中可能可以接受,但我不能确定。) -
在 SQL Server 上的效果相同,但带有更具描述性的错误消息,“如果指定了 SELECT DISTINCT,则 ORDER BY 项必须出现在选择列表中。”
标签: sql oracle sql-order-by distinct oracle9i