oracle 存储过程 判断字段中是否包含指定的字符,该怎么解决
oracle 存储过程 判断字段中是否包含指定的字符
表(NN_TEST)中某个字段(NN_VALUE)的值:
1,22,3,4,5
我想判指定的数字是否在这个字段中,
比如我想判断 2 不是 22
select * from NN_TEST t
WHERE instr(NN_VALUE, '2')>0
这个查询语句是有结果的,
应该没有查询结果的,因为2不存在。
请教大侠们,指点一下。
------解决方案--------------------
regexp_instr
参考这个http://blog.sina.com.cn/s/blog_6288f1400100lv79.html
------解决方案--------------------
------解决方案--------------------
逗号分割的。
那么可以
select * from NN_TEST t
WHERE instr(NN_VALUE, '2,')>0
------解决方案--------------------
很妙啊。
------解决方案--------------------
+1
我的异常网推荐解决方案:oracle存储过程,http://www..net/oracle-develop/177537.html
表(NN_TEST)中某个字段(NN_VALUE)的值:
1,22,3,4,5
我想判指定的数字是否在这个字段中,
比如我想判断 2 不是 22
select * from NN_TEST t
WHERE instr(NN_VALUE, '2')>0
这个查询语句是有结果的,
应该没有查询结果的,因为2不存在。
请教大侠们,指点一下。
------解决方案--------------------
regexp_instr
参考这个http://blog.sina.com.cn/s/blog_6288f1400100lv79.html
------解决方案--------------------
select * from NN_TEST t
where instr(','
------解决方案--------------------
NN_VALUE
------解决方案--------------------
',',',2,')>0;
------解决方案--------------------
逗号分割的。
那么可以
select * from NN_TEST t
WHERE instr(NN_VALUE, '2,')>0
------解决方案--------------------
很妙啊。
with t(str) as (
select '33,22,2' from dual
union
select '2,32,42' from dual
union
select '222,2222,22' from dual
)
select str,regexp_instr(str,'^[2],
------解决方案--------------------
,[2]$') from t order by str ;
STR REGEXP_INSTR(STR,'^[2],
------解决方案--------------------
,[2]$')
----------- -------------------------------
2,32,42 1
222,2222,22 0
33,22,2 6
------解决方案--------------------
+1
我的异常网推荐解决方案:oracle存储过程,http://www..net/oracle-develop/177537.html