SQL函数 get_promotion_clear(@promotion varchar(1000))执行后返回字符串出来
CREATE function [ dbo] . [ Get_Num_forward] ( @vStr varchar ( 500 ) , @posi int )
returns varchar ( 500 )
as
begin
declare @c varchar ( 1 ) ;
declare @new varchar ( 500 ) ;
declare @i int ;
set @new = '' ;
set @i = @posi - 1 ;
while @i <= LEN ( @vStr )
begin
set @c = substring( @vStr , @i , 1 )
if isnumeric( @c ) = 1 and @c <> '-' and @c <> '+' and @c <> ','
begin
set @new + = @c
end
else if @c = '.'
begin
set @new + = @c
set @i = @i - 1 ;
end
else
begin
return reverse( @new )
end
set @i = @i - 1 ;
end
return reverse( @new )
end
create function dbo. get_promotion_clear( @promotion varchar ( 1000 ) )
returns varchar ( 1000 )
as
begin
declare @rep float
declare @repchar varchar ( 500 )
declare @position int
declare @value varchar ( 500 )
select @position = charindex( '%' , @promotion )
select @rep = dbo. Get_Num_forward( @promotion , @position )
set @value = 10 - @rep * 0.1
set @repchar = @rep
set @promotion = replace ( @promotion , '减' + @repchar + '%' , '打' + @value + '折' )
return @promotion
end
实例
select dbo. get_promotion_clear( '满128元,可减12.5%&&购买1件可优惠换购热销商品&&京东秒杀:54.70' )
go
select dbo. get_promotion_clear( '满228元,可减23%&&购买1件可优惠换购热销商品&&京东秒杀:54.70' )
go
select dbo. get_promotion_clear( '满328元,可减40%&&购买1件可优惠换购热销商品&&京东秒杀:54.70' )
go