求函数的写法和执行
请问函数比较存储过程的优势在哪里?譬如在函数里可以实现而在存储过程中不可以实现的例子.

解决方案 »

  1.   

    函数不能用getdate(),rand(),newid()等不确定的函数。
      

  2.   

    自定义函数它的优势在哪里呢?我可以写出简单的函数
    --返回一个值的函数
    create function fun_test(@spmc varchar(20),@fjsx1 varchar(20))  
    returns varchar (200)  
    as   
    begin  
    declare @str float  
    set @str =(select avg(bzsj)  
    from shangpin   
    where spmc=@spmc and fjsx1=@fjsx1  
    )  
      
    return @str  
    end
    select * from shangpin
    select  dbo.fun_test('女歪头鞋','X01')--返回结果集的函数
    use bserp 
    go  
    --select * from shangpin 
    alter function fun_test1(@spmc varchar(20))
    --returns varchar (200)
    returns table
    as 
    --begin
    --declare @str float(53) 
    return(select spdm,spmc,zjf,avg(bzsj)as av
    from shangpin 
    where spmc=@spmc 
    group by spdm,spmc,zjf
    )select 
    * from  dbo.fun_test1('女歪头鞋')