首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

oracle 存储过程 判断字段中是否包含指定的字符,该怎么解决

2013-03-26 
oracle 存储过程 判断字段中是否包含指定的字符表(NN_TEST)中某个字段(NN_VALUE)的值:1,22,3,4,5我想判指

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;

[解决办法]
逗号分割的。
那么可以
select * from NN_TEST t
WHERE instr(NN_VALUE, '2,')>0
[解决办法]
引用:
SQL code

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
引用:
SQL code

select * from NN_TEST t
where instr(','
[解决办法]
NN_VALUE
[解决办法]
',',',2,')>0;

我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html

热点排行