select substring(colName,charindex('(',colName)+1,4)
把1992拿出来,对比也就用这个计算方法对比吧,如
where convert(int,substring(colName,charindex('(',colName)+1,4))<2009
不知道你是什么数据库.
如果是 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 行受影响)
如果数字长度不确定的话, 恐怕就麻烦了。
select * from 表 where substring('玉集建(1992)字第051601074号',charindex('(','玉集建(1992)字第051601074号')+1,4)<'2009'
'玉集建(1992)字第051601074号' 用相应的栏位名替换就可以了
String Str="玉集建(1992)字第051601074号"
int a = Str.Length;
int b = Str.IndexOf("(");
int c = Str.IndexOf(")");
string StrYear= Str.Substring(b+1,c-b-1);
学习了