数据库截取字段 转换成int型函数

USE [IAR_Factory_509]
GO
/****** 对象:  UserDefinedFunction [dbo].[GET_STRFILE1]    脚本日期: 09/13/2012 13:24:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[GET_STRFILE1](@a VARCHAR(50),@num int)
RETURNS VARCHAR(50)
AS
BEGIN
  DECLARE @SQL NVARCHAR(500)
  declare @ret int
declare @isNum int
declare @sec varchar(50) 
 if(@a!='')
if(@num=0)
 select @SQL=PATINDEX('%[0-9]%', @a)
  else
 select @SQL=PATINDEX('%]%', @a)
 if(@SQL>0)
begin
  select @sec=SUBSTRING(@a, PATINDEX('%]%', @a)+1, LEN(@a) - PATINDEX('%]%', @a) + 1 )
  select @isNum=isNumeric(@sec)
   if(@isNum=1)
     begin
     select @ret=cast(@sec as int)
     end
   else  
    begin
     select @ret=cast(SUBSTRING(@sec, PATINDEX('%[0-9]%', @sec), PATINDEX('%[^0-9%]', @sec)- 1 ) as int)
    end
 end
 else
  begin
     select @isNum=isNumeric(SUBSTRING(@a, PATINDEX('%]%', @a)+1, LEN(@a) - PATINDEX('%]%', @a) + 1 ))
   if(@isNum=1)
     begin
     select @ret=cast(SUBSTRING(@a, PATINDEX('%]%', @a)+1, LEN(@a) - PATINDEX('%]%', @a) + 1 ) as int)
     end
   else
 select @ret=0
  end
return @ret
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值