日期:2014-05-16  浏览次数:21055 次

SQL语句中如何截取字段中的数字部分然后进行精确查找
 SQL语句中如何截取字段中的数字部分然后进行精确查找,如某字段值是“安居168”,当我输入“168”进行查找时,只允许带“168”数字的记录出现,而且“1688”等不能出现,请各位高手指点一下。

------解决方案--------------------
这个sql无法做到吧
------解决方案--------------------
SELECT * FROM TB WHERE STUFF(字段,1,PATINDEX('%[0-9]%',字段)-1,'')='168'

------解决方案--------------------
如果数字不一定在最后的话,需要用函数来判断
------解决方案--------------------
同意一楼的。sql做到这个有难度。
------解决方案--------------------
看来你是不懂查手册的啊?

刚查了一下
ORACLE 10g 的可以用regexp_substr这个

9位数字结束 为: [[:digit:]]{9}$ 这里[:digit:]为特殊写法,代表为数字 再加个结束符$ 
比如
regexp_substr(testcol,'[[:digit:]]*')