SQL 字符串问题

现有一个字符串“dsf/fg/df/df/d/d/gf/gfh/hf/df/e/g/t/”想求字符串里‘/’有多少个,并能求得第2个‘/’的位置。即获得SQL中指定字符串中指定字符的个数,第n个指定字符的位置。请问应该怎么写SQL语句?(运行环境:SQL server 2000)
09-10-27  slash_x 发布
1个回答
时间
投票
  • 0

    17天天开心8

    Oracle可以实现,本人自己写的一个算法,供参考,用PL/SQL编辑,内有详细说明
    -------------------------------------
    procedure insert_str(p_str varchar2
                                  ) is
    v_total_length number; --字符的总长度
    v_count number;    --可以划分几个长度为10的字符条数
    v_mod number;    ---总长度除以10的余数,判断总长度能不能被10除尽
    v_str varchar2(10000);
    begin
              v_total_length := lengthb(p_str);
              if v_total_length <= 10 then
                  --执行插入
                 insert into table(cloumn) values(p_str);
               
              else
                     v_mod  := mod(v_total_length,10);
                      if v_mod = 0 then --能被除尽
                            v_count :=  v_total_length/10;
                      else   --不能被出尽
                            --取整数+1
                            v_count :=  trunc((v_total_length/10)) +1;
                      end if;
                     
                      for i in 1..v_count loop
                             --被截开后的字符串v_str
                             v_str := substr(p_str,((i-1)*10 + 1),10);
                             --执行插入
                             insert into table(cloumn) values(v_str);
                      end loop;
              end if;
    commit;
    exception when others then
     rollback;
     raise;
    end insert_str;

    09-10-27 | 添加评论 | 打赏

    评论读取中....

精华知识
更多  
意见反馈 帮助