字符串类型的数据取里面的整数值部分的问题
用户的一个数据的编号形式如下   
 (2006)121         2006年第121号文档 
 (2006)1121      2006年第1121好文档   
 需求如下。假设用户需要取   编号从   (2006)121   到   (2006)1121   文档清单【121   和1121   可变,后者肯定大于前者】,这个语句如何写法。 
 --------------------- 
 我有以下这个思路,就是不知道   SQL   语句如何写。 
 因为不允许跨年度。所以,把前面六位去掉。后面的转换成整数,然后将传入的参数进行   大于、小于   的比较即可。
------解决方案--------------------select * from tablename 
 order by cast(substring(FieldName,charindex( ') ',FieldName)+1,20) as int)
------解决方案--------------------declare @t table(name varchar(10)) 
 insert @t 
 select  '(2006)121 ' union all 
 select  '(2006)1121 '   
 ----查询 
 select * from @t  
 where convert(int,stuff(name,1,charindex( ') ',name), ' ')) between 121 and 1121 
 order by convert(int,stuff(name,1,charindex( ') ',name), ' '))   
 /*结果 
 name 
 ----------------- 
 (2006)121 
 (2006)1121 
 */
------解决方案--------------------declare @v1 varchar(30) 
 declare @v2 varchar(30) 
 set @v1= '(2006)121 ' 
 set @v2= '(2006)1121 '   
 if left(@v1,6)=left(@v2,6) 
 begin 
 if cast(right(@v1,len(@v1)-6) as int) > cast(right(@v2,len(@v2)-6) as int) 
 print @v1+ '>  '+@v2 
 else 
 print @v1+ ' < '+@v2 
 end    
------解决方案--------------------where stuff(name,1,6, ' ')> =121