1
我有一个表名x,它包含week-no,其中星期数的数据类型是varchar2,它在22秒内获取max(week-no)。 我需要获取,最大周没有 排我想这下面的查询:oracle中max函数的查询优化
select max(to_number(week-no))
from x;
请帮助和建议,可以花费较少的时间查询。
我有一个表名x,它包含week-no,其中星期数的数据类型是varchar2,它在22秒内获取max(week-no)。 我需要获取,最大周没有 排我想这下面的查询:oracle中max函数的查询优化
select max(to_number(week-no))
from x;
请帮助和建议,可以花费较少的时间查询。
首先,创建函数索引:
create index x_weekno_num on x(to_number(week_no));
我认为Oracle应该足够聪明地使用索引的查询。如果没有,你可以尝试:
select week_no_num
from (select to_number(week_no) as week_no_num
from x
order by to_number(week_no) desc
) x
where rownum = 1;
我还要指出的是,如果你是存储数量为字符串,那么你应该用零(因此“01”,“02”垫它等)。在这种情况下,您可以直接在列上使用max(week_no)
和索引。