【发布时间】:2014-05-20 07:22:25
【问题描述】:
我正在寻找一些帮助来编写 Oracle SQL 语句以完成以下任务...
假设我有以下数据:
YEAR | PLACE
1984 | somewhere
1983 | work
1985 | somewhere
1982 | home
1984 | work
1983 | home
1984 | somewhere
如何获得将所有 PLACE 列值保持在一起并按 YEAR 列排序的结果...所以我正在寻找的结果是:
YEAR | PLACE
1982 | home
1983 | home
1983 | work
1984 | work
1984 | somewhere
1984 | somewhere
1985 | somewhere
谢谢。
编辑:
只是为了说明一些问题的答案......假设我将以下数据添加到我的原始数据中:
1981 | somewhere
现在结果应该是:
YEAR | PLACE
1981 | somewhere
1984 | somewhere
1984 | somewhere
1985 | somewhere
1982 | home
1983 | home
1983 | work
1984 | work
谢谢。
【问题讨论】:
-
为什么“工作”行在“家”和“某处”之间排序?这意味着您希望
place按字母顺序以外的其他内容进行排序——该方法是什么? -
如果你也有
1982 | somewhere怎么办? -
看来他只是想按年份排序。
-
选择年份,按年份从 my_table 组中放置;
-
艾伦,我相信这适用于大多数 SQL 服务器,但在我正在处理的 Oracle 服务器上,我收到以下错误:'不是 GROUP BY 表达式'......我相信只有 Oracle允许在某些情况下使用 GROUP BY ...因此我的问题:)
标签: sql oracle group-by sql-order-by