001
001001
001001001
001001002
001002
002
002001

解决方案 »

  1.   

    这是树状编码吧
    获取父节点的编码,然后在拼当前节点的编码就好了,不太明白你的意思。select to_char(1, 'fm000') from dual; 这个语句生成的结果就是001,自己看看怎么弄吧
      

  2.   

    select sys_connect_by_path(id, '00')
      from (select level id from dual connect by level < 3) t1
    connect by level < 4;
      

  3.   

    select parent_id || child_id from dual;
    或者
    直接用变量
    V_ID := parent_id || child_id;
      

  4.   

    create table organization
    (
       id                        INTEGER                      not null,
       org_code           VARCHAR2(32)            default NULL,
       org_name           VARCHAR2(128)         default NULL,
       org_no                VARCHAR2(32)           default NULL,
       parent_id            INTEGER                      default NULL,
       constraint PK_ORGANIZATION primary key (id)
    );这是表结构,转成整形再转字符型好像也是0丢了 
      

  5.   

    select max(org_no)+1 orgNo from uap_organization  p where p.parent_id = '1'
    查询结果1003
      

  6.   

    select to_char(max(org_no)+1, 'fm000000') orgNo from uap_organization  p where p.parent_id = '1'
      

  7.   

    这个写法更好,可以不用管在哪个层级
    select to_char(max(org_no)+1, rpad('fm', length(org_no), '0')) orgNo from uap_organization  p where p.parent_id = '1'
      

  8.   

    select to_char(max(org_no)+1, rpad('fm', length(org_no), '0')) orgNo from uap_organization  p where p.parent_id = '1' group by org_no
    结果:1002    1003  前面的0丢失了
      

  9.   

    select to_char(max(org_no)+1, rpad('fm', length(org_no) + 2, '0')) orgNo from uap_organization  p where p.parent_id = '1' 
      

  10.   


    insert into organization 
    select top 1 (select max(id)+1 from organization)
    ,(select isnull(max(org_no),'') from organization where id=@pid)+right('000'+convert(varchar,max(
    convert(int,
    right(org_no,
    len(org_no)-len(select max(org_no) from organization where id=@pid)
    )
    )
    )+1
    ),
    len(select max(org_no) from organization where id=@pid)+3

    ,@orgname
    ,@pid
    from organization
    where parent_id=@pid