使用PLSQL对字符串进行排序,plsql字符串排序
1.建Function程序
CREATE OR REPLACE FUNCTION sort_string(p_string IN VARCHAR2) RETURN VARCHAR2 IS
TYPE typ_rec IS RECORD(
letter VARCHAR2(256), --记录字母
seq PLS_INTEGER --记录字母出现次数
);
TYPE tab_rec IS TABLE OF typ_rec INDEX BY BINARY_INTEGER;
tabr tab_rec;
l_result VARCHAR2(32767);
BEGIN
FOR i IN 1 .. length(p_string) LOOP
tabr(ascii(substr(p_string, i, 1))).letter := substr(p_string,
i,
1);
tabr(ascii(substr(p_string, i, 1))).seq := nvl(tabr(ascii(substr(p_string, i, 1))).seq,
0) + 1;
END LOOP;
FOR i IN tabr.first .. tabr.last LOOP
IF tabr.exists(i) THEN
l_result := l_result || rpad(tabr(i).letter,
tabr(i).seq,
tabr(i).letter);
END IF;
END LOOP;
RETURN l_result;
END;
2.用法
例子1:SQL> SELECT sort_string ('43258888') FROM DUAL;
SORT_STRING('43258888')
--------------------------------------------------------------------------------
23458888例子2:
SQL> SELECT sort_string ('klaktkky') FROM DUAL;
SORT_STRING('KLAKTKKY')
--------------------------------------------------------------------------------
akkkklty
文本地址:http://blog.csdn.net/sunansheng/article/details/46331485
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。