星空网 > 软件开发 > 数据库

sql 将查询的结果集一次性插入到表变量中

代码:

declare @Subject table(--题目表变量  SubjectID int,  Question nvarchar(MAX),  CorrectAnswer varchar(100),  Explain nvarchar(MAX),  SubjectTypeID int,  CreateID int,  CreateDate datetime,  SubjectScore decimal(3, 1),  ScoreSort int)insert into @Subject(SubjectID,Question,CorrectAnswer,Explain,SubjectTypeID,CreateID,CreateDate,SubjectScore,ScoreSort)select a.SubjectID,a.Question,a.CorrectAnswer,a.Explain,a.SubjectTypeID,a.CreateID,a.CreateDate,a.SubjectScore,a.ScoreSort from  (--题目表(传入参数 HistPaperID,subjecttitleid)  select a.SubjectID,Question,Answer as CorrectAnswer,Explain,TypeID as SubjectTypeID,a.CreateID,CreateDate,Score as SubjectScore,Sort as ScoreSort from HistPaperSubject a  left join HistPaperSubjectScore b on a.subjectID=b.subjectID  where a.isdel=0 and a.HistPaperID=60 and b.HistPaperID=60 and b.subjecttitleid=193) a--select * from @Subject  declare @StudentAnswer table(--学生答题表变量  UserPaperID int,  UserID int,  SubmitDate datetime,  CreateDate datetime,  SubjectID int,  StudentAnswer varchar(100),  SubjectSort int,  StudentScore decimal(3, 1))insert into @StudentAnswer(UserPaperID,UserID,SubmitDate,CreateDate,SubjectID,StudentAnswer,SubjectSort,StudentScore)select b.UserPaperID,b.UserID,b.SubmitDate,b.CreateDate,b.SubjectID,b.StudentAnswer,b.SubjectSort,b.StudentScore from  (--题目表(传入参数 HistPaperID)  select UserPaperID,UserID,SubmitDate,CreateDate,SubjectID,Answer as StudentAnswer,sort as SubjectSort,Score as StudentScore from UserPaper a  left join UserPaperSubject b on a.id=b.userpaperid  where a.HistPaperID=60 and b.HistPaperID=60 and a.[status]=1 and a.isdel=0) b--select * from @StudentAnswerdeclare @Result table(--最终结果报表  SubjectID int,  Question nvarchar(MAX),  CorrectAnswer varchar(100),  Explain nvarchar(MAX),  SubjectTypeID int,  CreateID int,  CreateDate datetime,  SubjectScore decimal(3, 1),  ScoreSort int,  DeFenLv float,  [PerCent] varchar(20))declare @SubjectID int,--题目ID  @CorrectAnswer varchar(100),--正确答案  @CorrectNum int,--正确的题目数  @TotalNum int,--总的题目数  @DeFenLv float,--得分率(以浮点数形式表示)  @PerCent varchar(20);--得分率(以百分比形式表示)while EXISTS(select SubjectID from @Subject)--循环题目表变量begin  select @SubjectID=SubjectID,@CorrectAnswer=CorrectAnswer from @Subject;  select @CorrectNum=Count(*) from @StudentAnswer where subjectid=@SubjectID and StudentAnswer=@CorrectAnswer--正确的题目数  select @TotalNum=Count(*) from @StudentAnswer where subjectid=@SubjectID--总的题目数  select @DeFenLv=convert(float,@CorrectNum)/convert(float,@TotalNum),@PerCent=cast(cast(round(convert(float,@CorrectNum)/convert(float,@TotalNum)*100,0) as decimal(18,0)) as varchar)+'%'  --最终表(题目及其得分率组成)  insert into @Result select a.SubjectID,a.Question,a.CorrectAnswer,a.Explain,a.SubjectTypeID,a.CreateID,a.CreateDate,a.SubjectScore,a.ScoreSort,@DeFenLv,@PerCent from @Subject a where a.subjectid=@SubjectID  delete from @Subject where subjectid=@SubjectIDendselect * from @Result

 




原标题:sql 将查询的结果集一次性插入到表变量中

关键词:sql

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

黑五网一它来了!:https://www.ikjzd.com/articles/133029
“GBC钓鱼”之坑,大家千万要小心:https://www.ikjzd.com/articles/133030
特朗普和拜登,谁上台对中国更有利?:https://www.ikjzd.com/articles/133031
旺季过后,卖家需要注意哪些问题?:https://www.ikjzd.com/articles/133032
“举报违规行为”正确率低或将被取消举报权限!:https://www.ikjzd.com/articles/133033
速看!美国大选接下来的一些重要时间节点:https://www.ikjzd.com/articles/133035
Shopee订单量激增5倍多,越南成韩国美容品牌主要消费市场:https://www.kjdsnews.com/a/1840708.html
北海红树林-北海红树林赶海攻略:https://www.vstour.cn/a/403226.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流