[英]Oracle date / order by question
我想從oracle表中選擇一個格式為select (to_char(req_date,'MM/YYYY'))
但我也想以這種日期格式訂購結果集。
我希望他們像日期而不是字符串一樣訂購。
像這樣
09/2009
10/2009
11/2009
12/2009
01/2010
02/2010
03/2010
04/2010
05/2010
06/2010
07/2010
08/2010
09/2010
10/2010
11/2010
12/2010
不喜歡
01/2010
02/2010
03/2010
04/2010
05/2010
06/2010
07/2010
08/2010
09/2009
09/2010
10/2009
10/2010
11/2009
11/2010
12/2009
12/2010
在sql中有什么辦法嗎?
完整的SQL是:
SELECT (to_char(req_date,'MM/YYYY')) as monthYear, count(req_id) as count
FROM REQUISITION_CURRENT t
GROUP BY to_char(req_date,'MM/YYYY')
謝謝
試試這個。 它的工作原理很有效,但看起來有些混亂。
select to_char(trunc(req_date, 'MM'),'MM/YYYY') as monthYear
,count(req_id) as count
from requisition_current
group
by trunc(req_date, 'MM')
order
by trunc(req_date, 'MM');
請試試
Select req_date, (to_char(req_date,'MM/YYYY')) from MY_TABLE order by req_date
您可以自由添加其他排序字段,即使它們是相同的字段。
試試這個
select monthyear,yr,month,count(req_id)
from
(
SELECT (to_char(req_date,'MM/YYYY')) as monthYear, to_char(req_date,'YYYY') yr, to_char(req_date,'mm') month, req_id
FROM REQUISITION_CURRENT t
) x
GROUP BY monthyear,yr,month
order by yr, month
我參加派對的時間相當晚,但我發現實現這一目標的最直觀方式如下:
SELECT DISTINCT
to_char(req_date,'MM/YYYY') as monthYear,
count(req_id) as count
FROM
REQUISITION_CURRENT t
GROUP BY
to_char(req_date,'MM/YYYY')
ORDER BY
to_date(monthYear,'MM/YYYY')
它可能不是計算效率最高的方法,因為它將日期轉換為字符然后再轉換為日期,但這正是您要求查詢這樣做的原因。 它還可以避免添加支持列或嵌套子查詢。
只需使用order by req_date
而不是order by to_char(req_date,'MM/YYYY')
。
嘗試
SELECT ...
ORDER BY MIN(req_date)
這將繞過Oracle關於在GROUP BY之后可以選擇什么的規則。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.