Мне нужно получить значение столбца с тремя символами вместо одного.Как получить результат с тремя символами
это моя просьба: select rank() over (order by 1,2,32) from dual
и их результат:
Мне нужно получить 001
вместо 1
Спасибо за вашу помощь
Мне нужно получить значение столбца с тремя символами вместо одного.Как получить результат с тремя символами
это моя просьба: select rank() over (order by 1,2,32) from dual
и их результат:
Мне нужно получить 001
вместо 1
Спасибо за вашу помощь
использования LPAD()
:
SELECT LPAD('1', 3, '0') FROM DUAL;
Выходы:
001
Так оборачивая его вокруг вашего запроса:
SELECT LPAD(rank() over (order by 1,2,32), 3, '0')
FROM DUAL;
IMO, Вы можете использовать SUBSTR()
так:
SELECT SUBSTR('000' || CAST((RANK() OVER (ORDER BY 1,2,32)) AS VARCHAR(3)), -3, 3)
FROM DUAL;
Не тестировалось еще;).
Вероятно, наиболее прямолинейное решение:
select to_char(rank() over (order by 1,2,32),'fm000') from dual
Это решение слишком большое спасибо – Abderrahim
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;
Да Спасибо за ваш ответ – Abderrahim