我表中的所有项目都是7位数.如果我输入6位数的东西,应该在开头显示0.(输出应为7位数.)
例如:
输入= 123456输出= 0123456
如何在Oracle SQL中编写它?
我试过了.但它不起作用.
cursor c1 is
into art_no_tmp1
select art_no
from barticles b
where b.ean_no_1 = '789546584587';
cursor checklength is
into len_number
select length(art_no_tmp1)
from dual;
if(len_number = 6) then
return '0'+art_no_tmp1;
else
return art_no_tmp1;
end if;
Run Code Online (Sandbox Code Playgroud)
有没有人有想法?
SQL> WITH DATA AS (
2 SELECT 1 num FROM DUAL UNION ALL
3 SELECT 12 num FROM DUAL UNION ALL
4 SELECT 123 num FROM DUAL UNION ALL
5 SELECT 1234 num FROM DUAL UNION ALL
6 SELECT 12345 num FROM DUAL UNION ALL
7 SELECT 123456 num FROM DUAL UNION ALL
8 SELECT 1234567 num FROM DUAL
9 )
10 SELECT num, to_char(num, '0000000') FROM data;
NUM TO_CHAR(NUM,'0000000')
---------- ----------------------
1 0000001
12 0000012
123 0000123
1234 0001234
12345 0012345
123456 0123456
1234567 1234567
Run Code Online (Sandbox Code Playgroud)