[英]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.