--我有一个字符串(Toby,Jay,Robert) 我想输出为(Robert Toty Jay)
讲出一个方法并实现5分,绝不食言。
请贴出SQL代码
解决方案 »
- Oracle自定义序列号生成时的并发操作问题
- 请教PHP连接远程oracle
- 想查看所有的分区列以及对应的表空间,分区类型.如何查询?
- oracle删除数据后,空间不释放如何解决???
- 一个有点变态的要求,请帮忙想想办法
- 错误::ORA-12541:TNS:没有监听程序.如何修改??求助各位了
- ora9i中的system,sys的密码怎么恢复!!!
- 用OCI如何插入LONG字段?每次都提示:00CFE264 "Error - ORA-01704: string literal too long\n"
- 怎么把查询到的记录集合存成EXCEL文件?
- 请问这个创建索引的语句是什么意思?
- 为什么在存储过程中用了一个函数速度变慢了
- 有达人能解释一下backward 和 forward Recovery 吗?
并没有规律性的啊--我有一个字符串(Toby,Jay,Robert) 我想输出为(Robert Toty Jay)
讲出一个方法并实现5分,绝不食言。
请贴出SQL代码
应该是(Toby,Jay,Robert)-->(Robert Jay Toby)
方法:可以考虑如下.
利用,作为分割符号.
将对应的字符串获得.
1.Toby
2.Jay
3.Robert
这些放在临时表中.
然后倒序排列.
最后形成你要的字符串
--刚开始字符为
Toby,Jay,Robert
--输出为
Robert Toty Jay
我只看SQL代码
如果是这样子的话
.那可以做临时表
将字符串先拆开排序
1.Toby
2.Jay
3.Robert 然后把最大值变为1,其他的都加1
在合并即就可以了!
--刚开始字符为
Toby,Jay,Robert
--输出为
Robert Toby Jay
--不是
Robert,jay,Toby
--不过我也可以根据需要输出成你那样我只看SQL代码
dbms_output.put_line('Robert Toty Jay');
end;
select t01,
substr(t01,instr(t01,',',1,2)+1,length(t01)-instr(t01,',',1,2))
||' '||
replace(substr(t01,1,instr(t01,',',1,2)),',',' ') from tt----------------------------------------------------
1 Toby,Jay,Robert Robert Toby Jay
给分吧
SUBSTR(SS, 1, INSTR(SS, ',', 1) - 1) || ' ' ||
SUBSTR(SS,
INSTR(SS, ',', 1, 1) + 1,
INSTR(SS, ',', 1, 2) - 1 - INSTR(SS, ',', 1, 1))
FROM (SELECT 'Toby,Jay,Robert' SS FROM DUAL);
10 楼 oracledbalgtu 5分--到时候兑现
--谢谢,还有没有简单的?
--不好意思,因有点事,LZ可以自行改一下:SQL> CREATE OR REPLACE FUNCTION f_twodomain(http0 IN varchar2) RETURN varchar2 IS
2 str1 varchar2(60);
3 str2 varchar2(50);
4 str3 varchar2(50);
5 i int;
6 j int := 1;
7 begin
8 For i in 1 .. 100 Loop
9 if ascii(substr(http0, i, 1)) = 41 then
10 return str3 || ' ' || str1 || ' ' || str2 || ')';
11 end if;
12 if ascii(substr(http0, i, 1)) = 44 then
13 j := j + 1;
14 end if;
15 if j = 1 then
16 str1 := str1 || substr(http0, i, 1);
17 end if;
18 if j = 2 then
19 str2 := str2 || substr(http0, i, 1);
20 end if;
21 if j = 3 then
22 str3 := str3 || substr(http0, i, 1);
23 end if;
24 End loop;
25 end;
26 /Function createdSQL> select f_twodomain('(Toby,Jay,Robert)') from dual;F_TWODOMAIN('(TOBY,JAY,ROBERT)
--------------------------------------------------------------------------------
,Robert (Toby ,Jay)SQL>
13 楼 oracledbalgtu 5分--到时候兑现
SQL> select regexp_substr('http://sina.com.cn/index','\..+/') from dual;REGEXP_S
--------
.com.cn/SQL> select regexp_substr('http://sina.com.cn/index','\..+/',1,1) from dual;REGEXP_S
--------
.com.cn/SQL> select regexp_substr('http://sina.com.cn/index','\..+/',1,2) from dual;R
-
问题是.com.cn/和.cn/都符合条件呀,为什么他就去了.com.cn/
怎样取.cn/?SQL>
SQL> select replace(substr(v_char,instr(v_char,',',1,2) + 1,length(v_char))
2 || ' ' ||
3 substr(v_char,1,instr(v_char,',',1,2) - 1),
4 ',',
5 ' ') cuancuan
6 from (select 'Toby,Jay,Robert' v_char from dual)
7 ;CUANCUAN
---------------
Robert Toby JaySQL>
--高人指点...他就没用substr,instr
select regexp_replace('Toby,Jay,Robert','(.+),(.+),(.+)','\3 \1 \2') from dual
这个是啥啊.
没定义啊