SELECT REGEXP_SUBSTR('-20号', '[0-9]+(室|-|)')
FROM DUAL WHERE REGEXP_LIKE('-20号', '(室|-|)') 我想判断'-20号' 这个值为室为-的时候显示20 ,其他的就为空!。不知道为什么就是会有差
------解决方案--------------------
--這個意思,不是-20號出來的是空?
SELECT regexp_replace(REGEXP_SUBSTR('-20号', '[-0-9]+室?$'),'[-室]',''),
regexp_replace(REGEXP_SUBSTR('-20室', '[-0-9]+室?$'),'[-室]',''),
regexp_replace(REGEXP_SUBSTR('-20', '[-0-9]+室?$'),'[-室]','') FROM DUAL;
/*
R RE RE
- -- --
20 20
*/