SQL Server 2008 R2——创建函数 筛选出字符串中的数字 筛选出字符串中的非数字

=================================版权声明=================================

版权声明:本文为博主原创文章 未经许可不得转载 

请通过右侧公告中的“联系邮箱(wlsandwho@foxmail.com)”联系我

未经作者授权勿用于学术性引用。

未经作者授权勿用于商业出版、商业印刷、商业引用以及其他商业用途。                   

本文不定期修正完善,为保证内容正确,建议移步原文处阅读。                                                               <--------总有一天我要自己做一个模板干掉这只土豆

本文链接:http://www.cnblogs.com/wlsandwho/p/4630209.html

耻辱墙:http://www.cnblogs.com/wlsandwho/p/4206472.html

=======================================================================

来点能量:“千里之堤,溃于蚁穴。”由此可见积累的重要性。

=======================================================================

获得字符串中的数字,并作为整数返回

(a1b2c3 ==>123)

(abc123 ==>123)

(123abc ==>123)

 1 create  function ufunc_GetNumericFromStr(@MixStr NVARCHAR(50)) RETURNS INT
 2 AS
 3     BEGIN
 4         while patindex('%[^0-9]%',@MixStr)>0
 5             begin
 6                 SET @MixStr=stuff(@MixStr,patindex('%[^0-9]%',@MixStr),1,'')
 7             end
 8         RETURN CONVERT(INT,@MixStr)
 9     END
10 
11 GO

去除字符串中的数字

(a1b2c3 ==>abc)

(abc123 ==>abc)

(123abc ==>abc)

 1 create  function ufunc_GetNonNumericStr(@MixStr NVARCHAR(50)) RETURNS NVARCHAR(50)
 2 AS
 3     BEGIN
 4         while patindex('%[0-9]%',@MixStr)>0
 5             begin
 6                 SET @MixStr=stuff(@MixStr,patindex('%[0-9]%',@MixStr),1,'')
 7             end
 8         RETURN CONVERT(NVARCHAR(50),@MixStr)
 9     END
10 
11 GO

===============================血与泪的教训=================================

如果拼接的字符串最终要拆分,最好还是分成两个字段。

  如果真的只能拼接,那么拼接时加上一个特殊字符便于以后分割。

原文地址:https://www.cnblogs.com/wlsandwho/p/4630209.html