不知道你是什么数据库.
如果是 Oracle 的话, 相当省事
用 正则表达式函数-REGEXP_SUBSTR 就可以解决了。
http://hi.baidu.com/wangzhiqing999/blog/item/625958917f5b5158d1135eff.html但是如果是 SQL Server 数据库的话, 就稍微麻烦一些了。
要首先用 PATINDEX 找到一个数字的位置。
SELECT PATINDEX('%[0-9]%', '玉集建(1992)字第051601074号')
如果长度固定为4的话, 还好办。直接 SUBSTRING 来处理就好
1> SELECT
2> SUBSTRING( '玉集建(1992)字第051601074号',
3> PATINDEX('%[0-9]%', '玉集建(1992)字第051601074号'),
4> 4);
5> go
--------
1992
(1 行受影响)
如果数字长度不确定的话, 恐怕就麻烦了。