簡體   English   中英

PL / SQL字符變量

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

有人有主意嗎?

使用TO_CHAR ,前導0 格式

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM