sql怎么截取一个字符串中的数字,然后和另一个数进行比较。

如字符串:“玉集建(1992)字第051601074号”中要截取括号中的数字——1992,并用1992和2009比较,小于的话就查询该记录。... 如字符串:“玉集建(1992)字第051601074号”中要截取括号中的数字——1992,并用1992和2009比较,小于的话就查询该记录。 展开
 我来答
apu510064
推荐于2017-11-24 · TA获得超过964个赞
知道小有建树答主
回答量:1634
采纳率:55%
帮助的人:925万
展开全部
select substring(colName,charindex('(',colName)+1,4)
把1992拿出来,对比也就用这个计算方法对比吧,如
where convert(int,substring(colName,charindex('(',colName)+1,4))<2009
wangzhiqing999
2011-07-25 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3320万
展开全部
不知道你是什么数据库.
如果是 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 行受影响)

如果数字长度不确定的话, 恐怕就麻烦了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bd0325f
2011-07-25 · TA获得超过373个赞
知道小有建树答主
回答量:298
采纳率:0%
帮助的人:197万
展开全部
select * from 表 where substring('玉集建(1992)字第051601074号',charindex('(','玉集建(1992)字第051601074号')+1,4)<'2009'

'玉集建(1992)字第051601074号' 用相应的栏位名替换就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BraveHeart_Fov
2011-07-25 · TA获得超过7942个赞
知道小有建树答主
回答量:1037
采纳率:0%
帮助的人:681万
展开全部
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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zk329754551
2011-07-25 · TA获得超过251个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:116万
展开全部
学习了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式