日期:2014-05-17  浏览次数:20645 次

sql 某列(值是逗号割开)包含特定数字 的数据的查找
select * from T_017_TABLE  
结果如图 
假如APPROVERs  传入 2095
怎么查到第二和第四列?
------解决方案--------------------
select * from T_017_TABLE  where  ',' 
------解决方案--------------------
 approvers 
------解决方案--------------------
 ',' like '%,2095,%'

------解决方案--------------------
引用:
Quote: 引用:

select * from T_017_TABLE  
for update   regexp_like(approvers,'^2095,*$'
------解决方案--------------------
'^*,2095$'
------解决方案--------------------
'^*,2095,*$') or approvers = '2095' ;  怎么不行?

select * from T_017_ATTENDANCE_APPROVERs  where regexp_like(approvers,'^2095,*$'
------解决方案--------------------
'^*,2095$'
------解决方案--------------------
'^*,2095,*$') or approvers = '2095' ;怎么不行?[/

不用这么麻烦,统一格式直接like就可以了,见4楼试一下满足条件不
------解决方案--------------------
引用:


WITH T AS
 (SELECT '9884' ID, '9834,12095' APP
    FROM DUAL
  UNION ALL
  SELECT '9834' ID, '2095,2100' APP
    FROM DUAL
  UNION ALL
  SELECT '9890' ID, '20951' APP
    FROM DUAL
  UNION ALL
  SELECT '9866' ID, '2100,2095,2099' APP
    FROM DUAL)
SELECT * FROM T WHERE REGEXP_LIKE(APP, '(\,2095
------解决方案--------------------
^2095)[$,]');