fil*_*ppo 1 sorting string oracle plsql oracle10g
说你有
select '9|2|6|7|5' as somedata from dual
Run Code Online (Sandbox Code Playgroud)
有没有办法,我可以做以下事情:
select
in_string_sort('|', a.somedata)
from
(select '9|2|6|7|5' as somedata from dual) a
Run Code Online (Sandbox Code Playgroud)
结果会是'2|5|6|7|9'什么?
我知道,我可以使用一个函数来实现它,但这是如此基本我想知道Oracle是否会为这类事情提供一些内置函数.
[编辑]忘记提及:这将在Oracle 10gR2中.
小智 6
据我所知,没有这样的内置功能.你没有说哪个版本,所以我假设11g.此查询应该为您执行:
1 select listagg(somedata, '|') within group (order by somedata) somedata from (
2 with q as (select '|'||'9|2|6|7|5' as somedata from dual)
3 select substr(somedata, instr(somedata, '|', 1, rownum) + 1, 1) somedata
4 from q,
5 (select 1 from q connect by level <= length(regexp_replace(somedata, '[0-9]', '')))
6* )
SOMEDATA
------------------------------
2|5|6|7|9
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6542 次 |
| 最近记录: |