用SQL完成一个函数设计。谢谢!

来源:百度知道 编辑:UC知道 时间:2024/06/18 17:43:31
这里有一道SQL实习题目,设计函数,希望牛人给出具体实现:

设计函数CheckBarCode(bar_code),计算条形码的校验码。
下面是条形码的校验码的计算过程(位置序号由右至左,校验码位置序号为1):
一、从条形码位置序号2开始,所有偶数位的数字码求和。
二、将步骤一的和乘以3。
三、从条形码位置序号3开始,所有奇数位的数字码求和。
四、将步骤二与步骤三的结果相加。
五、用大于或等于步骤四所得结果且为10最小整数倍的数减去步骤四所得结果,其差即为所求校验码的值。

declare @num varchar(20)
set @num='5646953'
declare @oddsum decimal --奇数的和
declare @evensum decimal --偶数的和
declare @pos int
declare @len int
set @len=len(@num)
set @pos=2
set @oddsum=0
set @evensum=0
while @pos<@len
begin
if(@pos%2=0)
begin
set @evensum=@evensum+cast(substring(@num,@Pos,1) as decimal)
end
else
begin
set @oddsum=@oddsum+cast(substring(@num,@Pos,1) as decimal)
end
set @pos=@pos+1
end

select (Ceiling((@oddsum+@evensum*3)/10))*10-@oddsum-@evensum*3