还是正则表达式

ICE-word 2012-09-07 09:55:26
SELECT REGEXP_SUBSTR('-20号', '[0-9]+(室|-|)')
FROM DUAL WHERE REGEXP_LIKE('-20号', '(室|-|)') 我想判断'-20号' 这个值为室为-的时候显示20 ,其他的就为空!。不知道为什么就是会有差
...全文
115 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
人生无悔 2012-09-07
  • 打赏
  • 举报
回复
打錯:我問的應是:-20號出來的是空?
人生无悔 2012-09-07
  • 打赏
  • 举报
回复

--這個意思,不是-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
*/
ICE-word 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
如果是这样的话可以考虑用decode啊,简单快捷。
[/Quote]

因为这个只是字符串里面的一部分,。我要拆分字符串。所以用decode不行!
WinniForum 2012-09-07
  • 打赏
  • 举报
回复
如果是这样的话可以考虑用decode啊,简单快捷。
ICE-word 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
把你匹配錯錯的字符串貼出來,然後想要的結果貼出來,最好多貼幾個
[/Quote]

就是!除了-20或者-20室 出来的数据是20 其他的都是为空就可以了!
人生无悔 2012-09-07
  • 打赏
  • 举报
回复
把你匹配錯錯的字符串貼出來,然後想要的結果貼出來,最好多貼幾個
ICE-word 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
打錯:我問的應是:-20號出來的是空?
[/Quote]


是的!!3Q

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧