[英]PL/SQL character variable
我表中的所有项目都是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;
有人有主意吗?
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
lpad功能如何?
LPAD('123', 7, '0') = '0000123'
但是,当字符串短于您要固定的长度时,请务必小心。
看一下这个例子。 http://sqlfiddle.com/#!4/3ae17/2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.