我需要使用三個字符而不是一個字符來獲取列的值。如何獲得包含三個字符的結果
這是我的要求: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