求一正则表达式

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从句吗?
...全文
84 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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,%';

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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