sql怎么截取一个字符串中的数字,然后和另一个数进行比较。
如字符串:“玉集建(1992)字第051601074号”中要截取括号中的数字——1992,并用1992和2009比较,小于的话就查询该记录。...
如字符串:“玉集建(1992)字第051601074号”中要截取括号中的数字——1992,并用1992和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 行受影响)
如果数字长度不确定的话, 恐怕就麻烦了。
如果是 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号' 用相应的栏位名替换就可以了
'玉集建(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);
int a = Str.Length;
int b = Str.IndexOf("(");
int c = Str.IndexOf(")");
string StrYear= Str.Substring(b+1,c-b-1);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
学习了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询