通过自己写一个自定义函数,然后更新便可。update TableName set grade=dbo.querygrade(Score_sum) from TableName
create function std_grade(@Score_sum decimal(10,2)) returns nvarchar(10) begin declare @grade nvarchar(10) if @Score_sum>=180 set @grade = 'A' else if @Score_sum<180 and @Score_sum>=160 set @grade = 'B' else if @Score_sum<160 and @Score_sum>=140 set @grade = 'C' else if @Score_sum<140 set @grade = 'D' return @grade end 调用函数:select *,dbo.std_grade(Score_sum) grade from std_score 把函数调用后,返回值grade直接插入到原表中,请问怎么写?
create function std_grade(@Score_sum decimal(10,2)) returns nvarchar(10) begin declare @grade nvarchar(10) if @Score_sum>=180 set @grade = 'A' else if @Score_sum<180 and @Score_sum>=160 set @grade = 'B' else if @Score_sum<160 and @Score_sum>=140 set @grade = 'C' else if @Score_sum<140 set @grade = 'D' return @grade end 调用函数:select *,dbo.std_grade(Score_sum) grade from std_score 把函数调用后,返回值grade直接插入到原表中,请问怎么写?哦,那把这个grade插入到你的std_score 表中的哪一列呢
是这样吗: update std_score set grade = dbo.std_grade(Score_sum)
Score_sum>180 返回成绩等级"A"
160<Score_sum<180 返回成绩等级“B”
Score_sum<160 返回成绩等级"C"
grade字段是函数的返回值,函数的返回值需要把插入表。
那如果关联Std_id,应该怎么写这个函数?
你的函数是已经写出来了还是还没写出来?如果写出来了,方便的话贴下脚本,如果没写出来,以文本方式贴下你的表结构、测试数据,还有一些注意事项,比如sqlserver1的版本
from TableName
create function std_grade(@Score_sum decimal(10,2))
returns nvarchar(10)
begin declare @grade nvarchar(10)
if @Score_sum>=180
set @grade = 'A'
else if @Score_sum<180 and @Score_sum>=160
set @grade = 'B'
else if @Score_sum<160 and @Score_sum>=140
set @grade = 'C'
else if @Score_sum<140
set @grade = 'D'
return @grade
end 调用函数:select *,dbo.std_grade(Score_sum) grade from std_score
把函数调用后,返回值grade直接插入到原表中,请问怎么写?
create function std_grade(@Score_sum decimal(10,2))
returns nvarchar(10)
begin declare @grade nvarchar(10)
if @Score_sum>=180
set @grade = 'A'
else if @Score_sum<180 and @Score_sum>=160
set @grade = 'B'
else if @Score_sum<160 and @Score_sum>=140
set @grade = 'C'
else if @Score_sum<140
set @grade = 'D'
return @grade
end 调用函数:select *,dbo.std_grade(Score_sum) grade from std_score
把函数调用后,返回值grade直接插入到原表中,请问怎么写?哦,那把这个grade插入到你的std_score 表中的哪一列呢
update std_score
set grade = dbo.std_grade(Score_sum)