求一正则表达式

lchh0917 2011-06-14 03:25:15
请教个正则表达式sql
deal_Man_Ids 为varchar2类型字段 有以下几种情况

deal_Man_Ids
-------------
12
12,2312
94,12,2312
55,43423,12
05124,1534
... --其他略

SELECT * FROM T_WORK_CONTACT_PROCCESS P
WHERE
P.DEAL_MAN_IDS = '12' OR
P.DEAL_MAN_IDS LIKE '%,12,%' OR
P.DEAL_MAN_IDS LIKE '%,12' OR
P.DEAL_MAN_IDS LIKE '12,%';

能用正则表达式简化where从句吗?
...全文
35 点赞 收藏 4
写回复
4 条回复
lchh0917 2011年06月18日
[Quote=引用 1 楼 tangren 的回复:]
SELECT * FROM T_WORK_CONTACT_PROCCESS P
WHERE ','||P.DEAL_MAN_IDS||',' like '%,12,%';
[/Quote]
tangren(老兵新手) 这个写法也很巧呀,谢谢!
回复 点赞
lchh0917 2011年06月18日
[Quote=引用 2 楼 wang123kui 的回复:]
SQL code

with t as(
select '12' txt from dual union all
select '12,2312' txt from dual union all
select '94,12,2312' from dual union all
select '05124,1534' ……
[/Quote]
就是这个regexp_like,感激!
回复 点赞
桃花岛黄岛主 2011年06月15日

with t as(
select '12' txt from dual union all
select '12,2312' txt from dual union all
select '94,12,2312' from dual union all
select '05124,1534' from dual )
select * from t where regexp_like(txt,'^12$|,12|,12,|12,')

-----------------------------------
12
12,2312
94,12,2312

回复 点赞
tangren 2011年06月14日
SELECT * FROM T_WORK_CONTACT_PROCCESS P
WHERE ','||P.DEAL_MAN_IDS||',' like '%,12,%';
回复 点赞
发动态
发帖子
基础和管理
创建于2007-09-28

7175

社区成员

9.5w+

社区内容

Oracle 基础和管理
社区公告
暂无公告