use book
go
create function dbo.zhx_zhx3(@chubanshe as varchar(20))
returns float
as
begin
declare @pingjunjiage float
set @pingjunjiage=(select avg(定价) from jbxx1 where 出版社=@chubanshe)
return @pingjunjiage
end
go
select dbo.zhxzhx('清华大学') as '平均价格'运行时提示:
消息 245,级别 16,状态 1,第 1 行
在将 varchar 值 '清华大学' 转换成数据类型 int 时失败。

解决方案 »

  1.   


    use book 
    go 
    create function dbo.zhx_zhx3(@chubanshe as varchar(20)) 
    returns float 
    as 
    begin 
    declare @pingjunjiage float 
    set @pingjunjiage=(select avg(定价) from jbxx1 where 出版社=@chubanshe) 
    return @pingjunjiage 
    end 
    go 
    select dbo.zhxzhx('清华大学') as 平均价格 
      

  2.   


    use book 
    go 
    create function dbo.zhx_zhx3(@chubanshe as varchar(20)) 
    returns float 
    as 
    begin 
    declare @pingjunjiage float 
    select @pingjunjiage=avg(定价) from jbxx1 where 出版社=@chubanshe) 
    return @pingjunjiage 
    end 
    go 
    select dbo.zhxzhx('清华大学') as '平均价格' 
      

  3.   


    use book 
    go 
    create function dbo.zhx_zhx3(@chubanshe as varchar(20)) 
    returns float 
    as 
    begin 
    declare @pingjunjiage float 
    set @pingjunjiage=(select avg(定价) from jbxx1 where 出版社='+@chubanshe+') 
    return @pingjunjiage 
    end 
    go 
    select dbo.zhxzhx('清华大学') as 平均价格 
      

  4.   

    出版社字段存得是int型的吧?是出版社id吧?在将 varchar 值 '清华大学' 转换成数据类型 int 时失败。
    这个'清华大学' 传入后只和出版社进行了匹配,而错误提示说明往int类型转换了,而且失败了。建议打开表看看字段类型!