if isnumeric(@returnchar)=1
begin
    return @returnchar
end
else
begin
    return 'df'
end
------------
以上写法不认,可是写成以下就可以
return @returnchar
end
可是返回值要根据不同的条件返回呀?
这种情况如何处理呢?
系统提示:最后一条语句必须是返回语句.
函数有这种限制呀,与存贮过程大不相同.

解决方案 »

  1.   

    if isnumeric(@returnchar)=0
        select @returnchar='df'
    retrun @returnchar
      

  2.   

    在函数开始处就必须声明函数的返回值类型,也就是说函数只能返回一种类型.例如:
    create function fntest
    returns int     /*在此声明函数的返回值类型*/
    as
    ....
      

  3.   

    只能返回整数值。return -1
      

  4.   

    if isnumeric(@returnchar)=1
    begin
        return @returnchar
    end
    else
    begin
        return '0'
    end
    -----------------------
    可能是我没说明白.
    1.自定义函数是可以返回任何类型值的.我试过了.
    2.我主要想问,我的以上写法为何不对,这种写法在存贮过程中是一定没有问题的.
    可是做为函数的返回值,好象就不能这样写.我想问应该如何写.
    也就是说,判断一个值,根据选择返回.我上面的语法应该是没有错误呀,可是为何在函数中就不认可呢?
    谢谢先.
      

  5.   

    一楼的写法是正确的.
    函数要求必须把return放到最后一个,和存储过程不一样.这是规则,遵守她就行了.按照一楼提供的方法写.
    不是楼主没说明白,是我领会错了^^
      

  6.   

    一楼的写法是正确的.
    函数要求必须把return放到最后一个,和存储过程不一样.这是规则,遵守她就行了.按照一楼提供的方法写.
    不是楼主没说明白,是我领会错了^^
    ----------------
    谢谢你,我晚些再结贴.呵呵