によってソート私はunion
を使用して、3つのテーブルからいくつかのデータを選択し、その後、私は、日付とタイムスタンプによってそれらをソートしたいと思います(降順):オラクル:日付とタイムスタンプ
select reportname as name, convert_to_char(a.date) AS created,
....
from table1
UNION
select reportname as name, convert_to_char(a.date) AS created,
....
from table2
UNION
select reportname as name, convert_to_char(a.date) AS created,
....
from table3
order by created desc;
convert_to_charは、以下のように実装されます。
create or replace function convert_to_char(myDate date)
RETURN varchar IS
BEGIN
return TO_CHAR(cast (myDate as timestamp) at local, 'YYYY-MM-DD HH24:MI:SS TZH:TZM');
END;
私が手にソートされたデータの結果は次のようになります。
created
------------------
2017-04-12 16:07:07 +02:00
2017-04-13 09:00:01 +02:00
2017-04-13 09:00:40 +02:00
2017-04-12 16:06:17 +02:00
2017-04-12 16:08:37 +02:00
2017-04-12 16:07:31 +02:00
2017-04-13 09:00:25 +02:00
2017-04-13 09:00:25 +02:00
2017-04-12 16:09:07 +02:00
2017-04-12 16:08:20 +02:00
2017-04-12 16:08:06 +02:00
2017-04-12 16:06:48 +02:00
しかし、私は次のソート結果を期待しています:
created
------------------
2017-04-13 09:00:40 +02:00
2017-04-13 09:00:25 +02:00
2017-04-13 09:00:25 +02:00
2017-04-13 09:00:01 +02:00
2017-04-12 16:09:07 +02:00
2017-04-12 16:08:37 +02:00
2017-04-12 16:08:20 +02:00
2017-04-12 16:08:06 +02:00
2017-04-12 16:07:31 +02:00
2017-04-12 16:07:07 +02:00
2017-04-12 16:06:48 +02:00
2017-04-12 16:06:17 +02:00
どのように期待された並べ替えの結果を得るためのアイデア?
ありがとうございます。
'sort by'?オラクルでは? –
なぜORDER BY a.dateを使用しないのですか –
私は "order by"に更新しました。並べ替えは打ち間違いだった –