﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-enjoying java-文章分类-DataBase</title><link>http://www.blogjava.net/codeguy02/category/27686.html</link><description>CodeGuy学习java的相关东东</description><language>zh-cn</language><lastBuildDate>Fri, 30 Nov 2007 16:42:22 GMT</lastBuildDate><pubDate>Fri, 30 Nov 2007 16:42:22 GMT</pubDate><ttl>60</ttl><item><title>字符串中提取数字</title><link>http://www.blogjava.net/codeguy02/articles/164325.html</link><dc:creator>codeguy</dc:creator><author>codeguy</author><pubDate>Fri, 30 Nov 2007 08:51:00 GMT</pubDate><guid>http://www.blogjava.net/codeguy02/articles/164325.html</guid><wfw:comment>http://www.blogjava.net/codeguy02/comments/164325.html</wfw:comment><comments>http://www.blogjava.net/codeguy02/articles/164325.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/codeguy02/comments/commentRss/164325.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/codeguy02/services/trackbacks/164325.html</trackback:ping><description><![CDATA[在短信业务开发中，要求用户输入指令G+生日，业务逻辑通过提取不同的年份来下发相应的时运信息给用户。由于在实际业务运行时，用户上行的随意性，我们业务端需提取年份，经过反复修改，得出以下代码可基本满足业务需求：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">declare&nbsp;@str&nbsp;varchar(</span><span style="color: #000000">200</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />set&nbsp;@str&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">我的生日是1963年5月6号</span><span style="color: #000000">'</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;patIndex(</span><span style="color: #000000">'</span><span style="color: #000000">%[^0-9]%</span><span style="color: #000000">'</span><span style="color: #000000">,&nbsp;subString(@str,&nbsp;patIndex(</span><span style="color: #000000">'</span><span style="color: #000000">%[0-9]%</span><span style="color: #000000">'</span><span style="color: #000000">,&nbsp;@str),&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">))&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;cast(subString(@str,&nbsp;patIndex(</span><span style="color: #000000">'</span><span style="color: #000000">%[0-9]%</span><span style="color: #000000">'</span><span style="color: #000000">,&nbsp;@str),&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">)&nbsp;as&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1900</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;cast(subString(@str,&nbsp;patIndex(</span><span style="color: #000000">'</span><span style="color: #000000">%[0-9]%</span><span style="color: #000000">'</span><span style="color: #000000">,&nbsp;@str),&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">)&nbsp;as&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2000</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">The&nbsp;command&nbsp;is&nbsp;correct,&nbsp;and&nbsp;the&nbsp;number&nbsp;is:&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;subString(@str,&nbsp;patIndex(</span><span style="color: #000000">'</span><span style="color: #000000">%[0-9]%</span><span style="color: #000000">'</span><span style="color: #000000">,&nbsp;@str),&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">command&nbsp;error!!</span><span style="color: #000000">'</span></div>
patIndex()函数可进行一定程度的模式匹配，弥补了t-sql中无正则表达式的缺陷，是一个很有用的函数，希望大家能重视起来，并加以应用。。
<img src ="http://www.blogjava.net/codeguy02/aggbug/164325.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/codeguy02/" target="_blank">codeguy</a> 2007-11-30 16:51 <a href="http://www.blogjava.net/codeguy02/articles/164325.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>