SQL SERVER自定义函数实例(一)
SQL SERVER自定义函数。功能如下:
输入两个参数@param1、@param2,这两个参数的类型均为varchar。
在表里,这两个字段的值有很多种形式,比如:“¥10.33”、“¥10.33元”、“¥10.33万元”、“一串文本”、NULL、空字符串
我要计算@param1/@param2
在计算之前我先进行数据判断。即只有“¥10.33”、“¥10.33元”、“¥10.33万元”这三种形式的数据方可参与计算,但在计算之前,又得进行数据提取,如提取10.33来进前计算,但如果有“万元”,则该数据要先*10000,化为元才能参加计算。
最后返回一个varchar型的值.
实现代码如下:
代码
1 drop function FuDongRV
2 go
3 create FUNCTION FuDongRV (@param1 varchar(200),@param2 varchar(MAX))
4 RETURNS varchar(200)
5 AS
6 BEGIN
7 DECLARE @rt varchar(200)
8
9 if charindex('¥',@param1,1)=1 and charindex('¥',@param2,1)=1
10 begin
11
12 set @param1=replace(@param1,'¥','')
13 set @param2=replace(@param2,'¥','')
14
15 if charindex('万元',@param1,2)>0
16 set @param1=replace(@param1,'万元','')*10000.0
17 else
18 set @param1=replace(@param1,'元','')
19 if charindex('万元',@param2,2)>0
20 set @param2=replace(@param2,'万元','')*10000.0
21 else
22 set @param2=replace(@param2,'元','')
23
24 if ISNUMERIC (@param1) =1 and ISNUMERIC(@param2)=1
25 set @rt=(convert(numeric(10,4), @param1 )-convert(numeric(10,4), @param2 ))/convert(numeric(10,4), @param2 )*100
26 end
27 RETURN(@rt)
28 END
29

浙公网安备 33010602011771号