Heim >Datenbank >MySQL-Tutorial >Oracle反转倒置函数

Oracle反转倒置函数

WBOY
WBOYOriginal
2016-06-07 16:08:411367Durchsuche

Oracle提供了一个反转倒置函数reverse,但此函数不能分组倒置,本文提供了一个即可分组倒置的函数,如下所示:

Oracle提供了一个反转倒置函数reverse,但此函数不能分组倒置,,本文提供了一个即可分组倒置的函数,如下所示:

CREATE OR REPLACE FUNCTION REVERSE_F(p_str VARCHAR2, p_delimiter VARCHAR2:='')
  RETURN VARCHAR2 IS
  v_return VARCHAR2(4000);
  vp_str  VARCHAR2(4000) := p_str;
  v_idx    number;
  vp_len  number := length(p_delimiter);
BEGIN
  if (p_delimiter is null) then
    select reverse(p_str) into v_return from dual;
  else
    loop
      v_idx := instr(vp_str, p_delimiter);
      if (v_idx = 0) then
        v_return := vp_str || v_return;
        exit;
      elsif (v_idx = 1) then
        v_return := substr(vp_str, 1, vp_len) || v_return;
        vp_str  := substr(vp_str, vp_len + 1);
      else
        v_return := substr(vp_str, 1, v_idx - 1) || v_return;
        vp_str  := substr(vp_str, v_idx);
      end if;
    end loop;
  end if;
  RETURN v_return;
END REVERSE_F;

效果图

Oracle函数之GREATEST函数详解实例

Oracle函数之单行转换函数

生成动态前缀且自增号码的Oracle函数

Oracle函数之Replace()

Oracle函数大全

Oracle函数之case和decode的用法区别及性能比较

本文永久更新链接地址:

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn