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)
和索引。