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' ;怎么不行?[/
select * from T_017_TABLE where ',' || approvers || ',' like '%,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)[$,]');
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)[$,]'); 如果第三条数据是 2095 这个查不出来的 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,');
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)[$,]'); 如果第三条数据是 2095 这个查不出来的 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,'); Sorry, please try againWITH 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, '2095' APP FROM DUAL UNION ALL SELECT '9866' ID, '2100,2095,2099' APP FROM DUAL) SELECT * FROM T WHERE REGEXP_LIKE(APP, '(\,2095|^2095)($|,)');
for update 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)[$,]');
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)[$,]');
如果第三条数据是 2095 这个查不出来的
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,');
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)[$,]');
如果第三条数据是 2095 这个查不出来的
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,');
Sorry, please try againWITH 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, '2095' APP
FROM DUAL
UNION ALL
SELECT '9866' ID, '2100,2095,2099' APP FROM DUAL)
SELECT * FROM T WHERE REGEXP_LIKE(APP, '(\,2095|^2095)($|,)');