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

时间:2023-12-23 21:58:31

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

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

请通过右侧公告中的“联系邮箱(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)

 create  function ufunc_GetNumericFromStr(@MixStr NVARCHAR(50)) RETURNS INT
AS
BEGIN
while patindex('%[^0-9]%',@MixStr)>0
begin
SET @MixStr=stuff(@MixStr,patindex('%[^0-9]%',@MixStr),1,'')
end
RETURN CONVERT(INT,@MixStr)
END GO

去除字符串中的数字

(a1b2c3 ==>abc)

(abc123 ==>abc)

(123abc ==>abc)

 create  function ufunc_GetNonNumericStr(@MixStr NVARCHAR(50)) RETURNS NVARCHAR(50)
AS
BEGIN
while patindex('%[0-9]%',@MixStr)>0
begin
SET @MixStr=stuff(@MixStr,patindex('%[0-9]%',@MixStr),1,'')
end
RETURN CONVERT(NVARCHAR(50),@MixStr)
END GO

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

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

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

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