oracle 字符串排序

WITH temp0 AS
(SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 100)

SELECT MAX(REPLACE(sys_connect_by_path(str, ' '), ' ', '')) f1
FROM (SELECT str, row_number() over(ORDER BY ascii(str) ASC) rn
FROM (SELECT substr(t.vals, tv.lv, 1) str
FROM (SELECT '李富财a' AS vals, length('李富财a') AS cnt
FROM dual s
/* WHERE s.f = '李富财'*/) t
JOIN temp0 tv
ON tv.lv <= t.cnt))
START WITH rn = 1
CONNECT BY rn - 1 = PRIOR rn;

posted @ 2017-07-06 17:32  albert_think  阅读(3541)  评论(0编辑  收藏  举报