ÀàËÆÓëCÓïÑÔÖеĺ¯Êý¡£
±àдһ¸ö´æ´¢¹ý³Ì£¬ÔÚsc±íͳ¼ÆÃ¿¸öѧÉúµÄƽ¾ù·Ö.
create proc avergrade as begin
//´´½¨´æ´¢¹ý³Ì
select sno,avg(grade) ƽ¾ù·Ö from sc group by sno end
exec avergrade
drop procedure avergrade
//Ö´Ðд洢¹ý³Ì
//ɾ³ý´æ´¢¹ý³Ì
¶ÔÁ·Ï°1µÄ´æ´¢¹ý³Ì½øÐиĽø£¬Ìí¼ÓÒ»¸öÊäÈë²ÎÊý¡ª¡ªÑ§ºÅ£¬Ê¹´æ´¢¹ý³ÌÄܸù¾ÝÊäÈëµÄѧºÅ¼ÆËã¸ÃѧÉúµÄƽ¾ù·Ö
create proc avergrade @sno char(10) as begin
select sno,avg(grade) ƽ¾ù·Ö from sc
where sno = @sno group by sno end
exec avergrade '04'
drop procedure avergrade
ÔÚÁ·Ï°2µÄ»ù´¡ÉÏÌí¼ÓÒ»¸öÊä³ö²ÎÊý¡ª¡ªÆ½¾ù·Ö£¬¼ÆËãÖ¸¶¨Ñ§ºÅµÄƽ¾ù·Ö£¬È»ºó½«Æ½¾ù·ÖÊä³ö¡£
create proc avergrade @sno char(10), @saving int out as begin
select @saving = avg(grade) from sc
where sno = @sno group by sno end
declare @avg int set @avg = 0
exec avergrade '02',@avg out select @avg ƽ¾ù·Ö
drop procedure avergrade
3.º¯Êý¡£
º¯Êý±ØÐë·µ»ØÖ¸¶¨ÀàÐÍ£¬¿ÉÒÔ·µ»Ø±í£¬ÓÐÊäÈë²ÎÊý¡£
´´½¨³É¼¨×ª»»º¯Êý£¬ÊµÏÖ°Ù·ÖÖÆ³É¼¨ÓëÓÅ¡¢Á¼¡¢ÖС¢¼°¸ñ¡¢²»¼°¸ñÎå¸öµÈ¼¶µÄ»»Ëã.
CREATE FUNCTION grade_trans(@grade FLOAT) RETURNS CHAR(16) AS BEGIN
DECLARE @class CHAR(16) SELECT @class = CASE
WHEN @grade IS NULL THEN '»¹Ã»²Î¼Ó¿¼ÊÔ' WHEN @grade < 60 THEN '²»¼°¸ñ'
WHEN @grade >= 60 and @grade < 70 THEN '¼°¸ñ' WHEN @grade >= 70 and @grade < 80 THEN 'ÖеÈ' WHEN @grade >= 80 and @grade < 90 THEN 'Á¼ºÃ' ELSE 'ÓÅÐã!' END
RETURN(@class) END
select dbo.grade_trans(88)
²éѯij¸öԺϵËùÓÐѧÉúËùÑ¡µÄÿÃÅ¿ÎµÄÆ½¾ù³É¼¨¡£
create function aver (@p char(10)) returns table as return (
select cno ¿Î³ÌºÅ,avg(grade) ƽ¾ù³É¼¨
from student,sc
where student.sno=sc.sno and sdept=@p
group by cno )
select * from dbo.aver('cs')
drop function aver
Çóij¸öԺϵѡÐÞÁËijÃſεÄѧÉúÈËÊý¡£
create function people(@p0 char(10),@p1 char(4)) returns int as begin
declare @renshu int select @renshu = ( )
return @renshu
select COUNT(*) Ñ¡¿ÎÈËÊý from student,sc
where student.sno = sc.sno and cno = @p1 and sdept = @p0
end
select dbo.people('cs','2')