Postgres order by子句返回序列号

时间:2014-08-12 16:52:36

标签: sql postgresql

我有这个postgres sql查询:

select Symbol,Date,Year,DayofYear Close 
from DailyPricesAMEX 
where symbol = IBM 
order by DayofYear DESC;

查询的输出是:

Symbol  Year  DayofYear
IBM     2014  99
IBM     2014  98
IBM     2014  97
IBM     2014  9
IBM     2014  89
IBM     2014  88

我想要的是:

Symbol  Year  DayofYear
IBM     2014  99
IBM     2014  98
IBM     2014  97
IBM     2014  89
IBM     2014  88
IBM     2014  9

我被困,任何人都有任何想法。

1 个答案:

答案 0 :(得分:1)

在我看来,DayofYear被保存为VARCHAR。请尝试以下方法:

select Symbol,Date,Year,DayofYear Close 
from DailyPricesAMEX 
where symbol = IBM 
order by DayofYear::integer DESC;

http://sqlfiddle.com/#!15/40a2f/2


<强> HINT : 最好将列的类型更改为整数。因此,您可以使用以下内容:

ALTER TABLE DailyPricesAMEX ALTER COLUMN DayofYear TYPE integer USING (DayofYear::integer);