例如:类似这样的值:DEPT_BMLD_BSTAZM00 ,DEPT_JSSLD_BSTAZ09我要截取出 BMLD 和 BSTAZM00根据下划线截取怎么写SQL呢?
解决方案 »
- ????在线急等
- exp imp 导出导入 问题
- oracle java source 怎么直接操作SQL语句查询结果?
- 请高手指教IMP的一个问题
- 如何在PL/SQLdev中 调试带输出参数为数组的存储过程
- 问一个查询的问题,请求达人帮忙!
- oracle10g下无法启动isqlplus服务
- 我的机器是xp系统,256M内存,2.3赛扬,已经装了sqlserver2000,想再装一个oracle看看,会不会系统崩溃阿??
- 天啊!!!!救救我,!!!!ora-00322的错误!!!!!
- 请问SOLARIS9 X86 上能安装ORACLE9I 吗?用的是哪个版本呢?
- 求SQL
- ORACLE 怎么将时间转化为number型的,例sysdate转为number型的
connect by level <= length(regexp_replace('DEPT_BMLD_BSTAZM00', '[^_]+', null))+1
结果:
DEPT
BMLD
BSTAZM00
其实没你想的那么复杂,我只要得到第一个下划线的下标,和第二个下划线的小标就可以了,类似这样写 :substr('DEPT_BMLD_BSTAZM00',第一个下划线的下标,第二个下划线的下标); 这样得到 BMLDsubstr('DEPT_BMLD_BSTAZM00'第二个下划线的下标); 这样得到BSTAZM00就是不知道怎么写
SELECT SUBSTR('DEPT_BMLD_BSTAZM00',INSTR('DEPT_BMLD_BSTAZM00','_',1,1)+1,
INSTR('DEPT_BMLD_BSTAZM00','_',1,2)-INSTR('DEPT_BMLD_BSTAZM00','_',1,1)-1 ) ,
SUBSTR('DEPT_BMLD_BSTAZM00',INSTR('DEPT_BMLD_BSTAZM00','_',1,2)+1 ) FROM DUALDB2不会……^_^
SUBSTR(item,instr(item,'_') + 1,instr(item,'_',instr(item,'_') + 1) - instr(item,'_') - 1 ) AS scd /*instr的特殊用法,指定起始位置instr(item,'_',从第一个下划线后一个位置开始)*/
FROM
( SELECT 'aaa_bbb_ccc' AS item FROM dual
UNION ALL
SELECT 'dd_ee_ff' AS item FROM dual
)
--结果
FST SCD
----------- -----------
aaa bbb
dd ee