SQL怎样取出字符串中的数字?

来源:百度知道 编辑:UC知道 时间:2024/05/09 08:45:07
如湘政发15号、湘政函2号、湘人发2号。能不能用sql语句取出中间的数字。在一个字段中,想找出如“湘政发”的最大号并加1,用于公文的编号。

比如你的表叫作TALBE1,字段是str1,类型为nvarchar,那么找出有湘政发的最大号加1这样写
select max(convert(int,substring(str1,patindex(N'%[1234567890]%',str1),len(str1)-patindex(N'%[1234567890]%',str1)+1-patindex(N'%[1234567890]%',reverse(str1))+1)))+1 from table1 where str1 like N'%湘政发%'
测试通过,耗时很长,请认真试试。
这是sql server 的写法。

如果是ORACAL或其它的SQL语言您可以到这里参考一下。你会发现,用SQL SERVER我的方法要比他的好
http://book.csdn.net/bookfiles/530/10053017904.shtml