regexp+substr提取字母
答:在搜索子串时,indexOf(substr, [start])和lastIndexOf(substr, [start])让你能够定位子串的位置,前者从左到右找,后者从右到左找。正则表达式的强大在match(regexp)和replace(regexp/substr, replacetext)中展现,前者用于查找匹配项,后者用于替换匹配内容。深入探索,search() 方法能帮你检索子串,...
答:如果你的条件不允许你写PLSQL函数的话,就用正则表达式,如下:SELECT * FROM TABLE WHERE REGEXP_SUBSTR(CHECK, '^[0-9\.\-]\d*\.{0,1}\d+$') IS NOT NULL;
答:如楼上所说,10g以后的版本可以用regexp_substr函数 如果oracle版本较低,9i及以下版本可使用translate函数 如你上边那个 select translate('[289]+[362]-[323243]ppp[454353]','0123456789'||'[289]+[362]-[323243]ppp[454353]', '0123456789') from dual;具体语法 select translate(字段名,字段...
答:本文个人拙见,若有出入,请指出——来自菜的颤抖 该方式的效率不高,如何优化,请看 记Oracle中regexp_substr函数的一次调优(速度提高99.5%)表A中存放了集装箱的信息,一个集装箱一条记录,表B中存放了对于集装箱操作的指令,一条指令包括多个集装箱箱号,通过分号 ; 切割( TCIU2347687;XUTR...
答:"|"符号在正则表式里是 “或者” 的意思。regexp_substr(building_name,'[0-9]+[号楼|号|栋|#|座]')这句正则表达的是,在building_name里找一位数如果后面是“号楼”或者“号”或者“栋”再或者“#”还或者“座”都数找到并匹配成功。。
答:那就不要用substr了,substr是用来截取子串的,既然没有规律就判数字或字母后提取咯
答:--oracle 貌似不支持正向否定预查,还是用刚刚思路:--目标值2:WITH TMP AS (SELECT 'ZB0010+-=-3KFJK(ZB0012S)DLKG-=-ZB0042...ZB0323...' AS STR FROM DUAL)SELECT LEVEL AS ID, REGEXP_SUBSTR(STR, 'ZB[0-9]{4}', 1, LEVEL) AS VALUEFROM TMPCONNECT BY LEVEL <= ...
答:when regexp_like(str, '[A-Za-z]$') then 16 substr(str, 1, length(str) - 1) 17 end 18 from t;STR CASEWHENREGEXP_LIK--- ---25KD789 25KD78925KD789KK 25KD789KK25KD789K 25KD789
答:select regexp_substr('热能与动力工程200107班','[0-9]+',1) from dual;
答:可以使用substr函数及instr函数共同实现:如,字符串为:123-asdf-119 现在要截取两个“-”中间的字符串,可用如下语句:select substr('123-asdf-119',instr('123-asdf-119','-')+1,instr('123-asdf-119','-',instr('123-asdf-119','-')+1)-instr('123-asdf-119','-')-1) from ...
网友评论:
亢菁18253957632:
ORACLE REGEXP - SUBSTR截取字符串问题 -
61065曹容
: 可以通过REGEXP_SUBSTR函数(配合正则表达式)来实现字符串截取.举例:sql:select regexp_substr('CYJ8-ABC','[0-9]+') from dual; 以上sql执行结果:8;备注:REGEXP_SUBSTR函数格式如下:function REGEXP_SUBSTR(String, ...
亢菁18253957632:
oracle中使用regexp - substr取值.(最好用正则) -
61065曹容
: select regexp_substr(regexp_substr('<a1="a1111" a2="b22222" a3="a33333"/>','a2=".*"'),'\w+',1,2) from dual结果:b22222,如无a2时,值null
亢菁18253957632:
PL/SQL中 如何在字符串中提取数字 ? -
61065曹容
: select regexp_substr('水库新村332号','[0-9]+' ) from dual;--用正则表达式取出数字 select regexp_substr('水库新村332号','[[:digit:]]+') from dual;
亢菁18253957632:
如何在oracle中使用正则表达式 -
61065曹容
: regexp_like 2.regexp_substr 3.regexp_instr 4.regexp_replace 看函数名称大概就能猜到有什么用了. regexp_like 只能用于条件表达式,和 like 类似,但是使用的正则表达式进行匹配,语法很简单: regexp_substr 函数,和 substr 类似,用...
亢菁18253957632:
Oracle中的regexp - instr和regexp - substr这两个函数在SQL Server2008 中怎么实现? -
61065曹容
: sql server到现在为止,内在还不支持常规表达式.如果你要使用,可以使用.net 语言编写clr函数来实现功能.http://blog.csdn.net/jinjazz/article/details/4101746
亢菁18253957632:
oracle 字符串匹配查询 -
61065曹容
: select t.* from t1 t where regexp_like(t.str,'[ac]');oracle中的函数regexp_like,很好用的哦,其中[ac]为正则表达式,意思是,在str字段的数据里,匹配有包含a或者c的数据.具体请在网上查询oracle数据库中regexp_like函数的应用,希望能帮助你.
亢菁18253957632:
oracle中截取一个字符串中的数字怎么做? -
61065曹容
: 如果Oracle版本不是太低的话,使用 正则表达式函数 REGEXP_SUBSTR 处理.5个参数 第一个是输入的字符串 第二个是正则表达式 第三个是标识从第几个字符开始正则表达式匹配.(默认为1) 第四个是标识第几个匹配组.(默认为1) 第五个是是取值范围: i:大小写不敏感; c:大小写敏感; n:点号 . 不匹配换行符号; m:多行模式; x:扩展模式,忽略正则表达式中的空白字符.SQL> SELECT2 REGEXP_SUBSTR(a,'[0-9]+')3 FROM4 test_reg_substr5 WHERE6 REGEXP_LIKE(a, '[0-9]+');
亢菁18253957632:
ORACLE,使用regexp - substr截取字符.我需要在一个单元格里截取用回车符隔开的字符,然后分开多行显示. -
61065曹容
: replace(sch_group,char(10),'$') --换成业务中没有的符号 select regexp_substr(replace(sch_group,chr(10),'$'), '[^$]+', 1, level) col from dual connect by level <= regexp_count(replace(sch_group,chr(10),'$'), '$') + 1
亢菁18253957632:
oracle regexp - substr中正则表达式问题 -
61065曹容
: 用regexp_replace吧,regexp_substr也能做到只是太麻烦 SELECT REGEXP_REPLACE('热能与动力工程200107班', '[^[:digit:]]') FROM DUAL;
亢菁18253957632:
oracle 函数REGEXP - SUBSTR使用字段时为什么变慢了 -
61065曹容
: 正则表达式本来就是一个效率比较低的东西,但是功能强大你的第一条只有一条记录当然快了...第二条慢是正常的,而且还有树形查询..