mysql 触发器 if语句用法

mysql 触发器 if语句用法,第1张

mysql 触发器 if语句用法

@sqlz ='select asd from flkg'

EXECUTE(@sqlz)

----------

首先,mysql下动态语句不是这样写的,另外,触发器里不能允许返回结果集的.

这里我是希望他能中断更新!

CREATE PROCEDURE 学生成绩统计分析

@学号 Char(10)

AS

(insert into 学生学习状况(学号,姓名,平均总评成绩,评价)

select 学生.学号,姓名, convert(decimal(5,2), avg(convert(decimal(5,2), 总评成绩))) as 平均总评成绩,

评价=

case

when convert(decimal(5,2), avg(convert(decimal(5,2), 总评成绩))) >= 90 then ’优秀’

when convert(decimal(5,2), avg(convert(decimal(5,2), 总评成绩))) <60 then ’较差’

else ’一般’

end

)

from 学生 inner join 成绩 on 学生.学号 = 成绩.学号

where 学生.学号 = @学号

group by 学生.学号, 姓名

②若平均总评成绩在90分以上,则查询出该学生总评成绩>=90的课程,并添加到表“优秀课程”表中(其kID列为自动赋值)。

if ((select convert(decimal(5,2), avg(convert(decimal(5,2), 总评成绩))) from 成绩 where 学号=@学号) >= 90)

begin

insert into 优秀课程(学号,课程名称,总评成绩)

select 成绩.学号, 课程名称,总评成绩

from 成绩 join 课程 on 成绩.课程代码=课程.课程代码

where 成绩.学号 = @学号 and 总评成绩>=90

end

③若平均总评成绩在60分以下,则查询出该学生总评成绩<60的课程,并添加到表“不及格课程”表中(其kID列为自动赋值)。if ((select convert(decimal(5,2), avgif if ((select convert(decimal(5,2), avg(convert(decimal(5,2), 总评成绩))) from 成绩 where 学号=@学号) <60)

begin

insert into 不及格课程(学号,课程名称,总评成绩)

select 成绩.学号, 课程名称,总评成绩

from 成绩 join 课程 on 成绩.课程代码=课程.课程代码

where 成绩.学号 = @学号 and 总评成绩<60

end

你可以试一下先输入select 'printSEQ' from 'policyexpress' where policyno='000000600326 ' into '@cnt'

再输入if '@cnt' ='' then update policyexpress set printSEQ = '212121212' where policyno = '000000600326'

end if


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6146182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存