求助,运行自定义函数不是自己想要的结果,找不到原因,谢谢

shimingxiang2022 shimingxiang2022 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

CREATE FUNCTION [dbo].[TO_ISBN13](@isbn as NVARCHAR(16))
RETURNS NVARCHAR
as
begin
    DECLARE @isbn13 NVARCHAR,
            @check_bit int,
            @isbn10 int,
            @isbn9 int,
            @isbn8 int,
            @isbn7 int,
            @isbn6 int,
            @isbn5 int,
            @isbn4 int,
            @isbn3 int,
            @isbn2 int,
            @isbnsum1 int
            
    SET    @isbn10=CAST(SUBSTRING(@isbn,1,1) as int)
    SET    @isbn9=CAST(SUBSTRING(@isbn,2,1) as int)
    SET    @isbn8=CAST(SUBSTRING(@isbn,3,1) as int)
    SET    @isbn7=CAST(SUBSTRING(@isbn,4,1) as int)
    SET    @isbn6=CAST(SUBSTRING(@isbn,5,1) as int)
    SET    @isbn5=CAST(SUBSTRING(@isbn,6,1) as int)
    SET    @isbn4=CAST(SUBSTRING(@isbn,7,1) as int)
    SET    @isbn3=CAST(SUBSTRING(@isbn,8,1) as int)
    SET    @isbn2=CAST(SUBSTRING(@isbn,9,1) as int)
    SET    @isbnsum1=(9*1+7*3+8*1+@isbn10*3+@isbn9*1+@isbn8*3+@isbn7*1+@isbn6*3+@isbn5*1+@isbn4*3+@isbn3*1+@isbn2*3)
    SET    @check_bit=10-@isbnsum1%10
    SET    @isbn13='978'+left(@isbn,9)+cast(@check_bit as NVARCHAR)
    RETURN @isbn13
END

 

如果运行自定义函数:

select  TO_ISBN13(7518345528)

正常情况下应该是:9787518345526

但结果出来就一个数字:9

是新手,一直找不到原因,谢谢大家的帮助!

 

 

...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
shimingxiang2022
MS-SQL Server 34,876 成员 254,635 内容