一个参数a,一个字段b值为数字如 3,4,5等然后我想通过一个sql,如何实现 b值为3 sql查询出来为  aaa
         b=4,  sql查询出来为  aaaa
         b=10,sql          为  aaaaaaaaaa就等于说sql查询出来等于 n a用一个sql怎么实现,a可以定义为变量。求指导谢谢!!

解决方案 »

  1.   

    create function test(in_num number) return varchar2
    is
      out_num varchar2(100);
     begin
      if in_num = 3 
         return 'aaa'
      else if in_num = 4
         return 'aaaa'
      end if
    end;
      

  2.   

    我想用个单的sql,但是你这个,,如果是一百呢
      

  3.   

    SELECT lpad(dummy,b,a) INTO j FROM dual;
    看效果的话,用下面的例子:
    DECLARE
      I NUMBER := 18;
      J VARCHAR2(200);
    BEGIN
      SELECT LPAD(DUMMY, I, 'a') INTO J FROM DUAL;
      DBMS_OUTPUT.PUT_LINE(J);END;
      

  4.   

    不是输入3.4,5这个值是从表中查的,比如select b from test;
      

  5.   

    SELECT lpad(dummy,(select   b   from   test),a) INTO j FROM dual;这种写法你必须保证select   b   from   test这条语句返回的只有一个值
      

  6.   


    select replace(rpad(dummy,b,'a'),'X','a') from test
      

  7.   

    SQL> var s varchar2;
    SQL> exec :s := 'a';PL/SQL 过程已成功完成。SQL> with tt as 
      2  (select level b from dual connect by level<10)
      3  select lpad(:s, b, 'a') from tt;LPAD(:S,B,'A')
    --------------------------------------------------------------------------------
    a
    aa
    aaa
    aaaa
    aaaaa
    aaaaaa
    aaaaaaa
    aaaaaaaa
    aaaaaaaaa已选择9行。SQL> 
      

  8.   

    rpad函数在原字符串右边填充(上面应使用rpad)
    lpad函数在原字符串左边填充