0
我有一个名为'ADDRESSES'的表。Oracle sql order by not expected as working as expected?
我的查询:
select MODIFIED_DATE, CITY from ADDRESSES order by MODIFIED_DATE desc, CITY asc;
通过运行上面的查询,我得到:
MODIFIED_DATE CITY
============= ==============
13-JAN-16 CHICAGO
13-JAN-16 CHICAGO
13-JAN-16 CHICAGO
13-JAN-16 KANSAS CITY
13-JAN-16 KANSAS CITY
13-JAN-16 KANSAS CITY
13-JAN-16 KANSAS CITY
13-JAN-16 KANSAS CITY
13-JAN-16 CHICAGO
13-JAN-16 CHICAGO
13-JAN-16 DENVER
13-JAN-16 DENVER
但我相信:
MODIFIED_DATE CITY
============= ==============
13-JAN-16 CHICAGO
13-JAN-16 CHICAGO
13-JAN-16 CHICAGO
13-JAN-16 CHICAGO
13-JAN-16 CHICAGO
13-JAN-16 DENVER
13-JAN-16 DENVER
13-JAN-16 KANSAS CITY
13-JAN-16 KANSAS CITY
13-JAN-16 KANSAS CITY
13-JAN-16 KANSAS CITY
13-JAN-16 KANSAS CITY
MODIFIED_DATE的数据类型是日期和数据CITY的类型是VARCHAR2。
这究竟是为什么?
我怀疑是有时间组件添加到您'DATE'值,即使不是被显示的话。 –
首先运行:'alter session set nls_date_format ='dd-mon-yyyy hh24:mi:ss';'然后重新运行您的查询;) – Ditto