2016-02-26 3 views

ответ

1

использования LPAD():

SELECT LPAD('1', 3, '0') FROM DUAL; 

Выходы:

001 

Так оборачивая его вокруг вашего запроса:

SELECT LPAD(rank() over (order by 1,2,32), 3, '0') 
FROM DUAL; 
+0

Да Спасибо за ваш ответ – Abderrahim

0

IMO, Вы можете использовать SUBSTR() так:

SELECT SUBSTR('000' || CAST((RANK() OVER (ORDER BY 1,2,32)) AS VARCHAR(3)), -3, 3) 
FROM DUAL; 

Не тестировалось еще;).

1

Вероятно, наиболее прямолинейное решение:

select to_char(rank() over (order by 1,2,32),'fm000') from dual 
+0

Это решение слишком большое спасибо – Abderrahim

0
select lpad(rank() over (order by 1,2,32),3,0) from dual; 

select substr('00' || rank() over (order by 1,2,32),1,3) from dual; 
Смежные вопросы