已知表名code_t_division 的字段codeid 单位编号,codename 单位名称
比如610001单位编号是以610开头的下一级单位,现在已知610002001的单位编号,求一oracle函数返回其上一级单位编号和名称。

解决方案 »

  1.   

    单位编号是固定长度级别才行。
    可以用Oracle字符串函数substr来截取。
      

  2.   

    row_number() over (partition by order by )
      

  3.   

    select codeid,codename
      from code_t_division 
     where codeid = substr(codeid,1,len(codeid)-3);
      

  4.   

    你这个上一级怎么定义的?如果是3位算一级,则3楼可以    * Jane_64用户头像
        * Jane_64
        *
        *
        * 等 级:
        *
    #3楼 得分:0回复于:2010-01-15 11:51:19
    select codeid,codename
      from code_t_division
    where codeid = substr(codeid,1,len(codeid)-3);
      

  5.   


    SELECT LEVEL, t.*
      FROM code_t_division t
     START WITH t.codeid = '610002002'
    CONNECT BY t.codeid = PRIOR substr(t.codeid, 1, length(t.codeid) - 3)
     ORDER BY t.codeid;