SQL里面的while 循环

--WHILE循环
--特点:
--1.没有True/false,要写条件表达式
--2.也可以嵌套
--3.也可以break,continue
--4.没有{},需要使用begin..end

--如果office不及格的人超过半数(考试题出难了),则给每个人增加2分,循环加,直到不及格的人数少于一半。
go
declare @subjectname nvarchar(50)=‘office‘ --科目名称
declare @subjectId int =(select SubjectId from Subject where [email protected]) --科目ID
declare @classid int--指定科目所属于的班级ID
set @classid=(select classid from Subject where [email protected]); --查询指定科目所属于的班级ID
declare @totalNum int --总人数
select @totalNum=COUNT(*) from Student where [email protected]获取需要参数指定科目考试的总人数
declare @unpassNum int --指定科目没有及格的人数
select @unpassNum=(select COUNT(*) from Result where [email protected] and StudentResult<60) --查询没有通过人次
--循环加分
while(@unpassNum>@totalNum/2)
begin
--执行加分操作
update Result set StudentResult+=2 where [email protected] and StudentResult<=98
--再次统计没有通过的人次
select @unpassNum=(select COUNT(*) from Result where [email protected] and StudentResult<60)
end
go
--------------------------------------------------

------------------------------------------------------
go
declare @subjectname nvarchar(50)=‘office‘ --科目名称
declare @subjectId int =(select SubjectId from Subject where [email protected]) --科目ID
declare @classid int--指定科目所属于的班级ID
set @classid=(select classid from Subject where [email protected]); --查询指定科目所属于的班级ID
declare @totalNum int --总人数
select @totalNum=COUNT(*) from Student where [email protected]获取需要参数指定科目考试的总人数
declare @unpassNum int --指定科目没有及格的人数
--select @unpassNum=(select COUNT(*) from Result where [email protected] and StudentResult<60) --查询没有通过人次
--循环加分
while(1=1)
begin
if(@totalNum/2<(select COUNT(*) from Result where [email protected] and StudentResult<60))
--执行加分操作
update Result set StudentResult+=2 where [email protected] and StudentResult<=98
else
break
end

时间: 2024-10-07 06:33:40

SQL里面的while 循环的相关文章

SQL里面的char类型

--LEN(参数):获取字符的个数--不区分中英文--DATALENGTH(参数):获取参数所占据的字节数select LEN('中华人民共和国')select LEN('abcd')--select datalength('中华人民共和国')select datalength('abcd')--查询表的数据--char类型:char空间一旦分配,就不会再回收,多余的空间不会回收.但是如果存储的数据的数量大于指定的空间,那么就会报错.当需要存储的值的长度波动变动不大的时候可以使用char.--身

SQL里面的IF ELSE,没有{},使用begin...end

--IF ELSE--特点:--1.没有{},使用begin...end--2.有多重和嵌套--3.if必须有处理语句,如果只有一句,也可以不使用begin..end,只包含后面一句--4.没有true/false的概念,只能使用关系运算符的条件表达式--5.if后面的括号可以没有 --计算office平均分数并输出,如果平均分数超过60分输出成绩最高的三个学生的成绩,否则输出后三名的学生godeclare @subjectname nvarchar(50)='office' --科目名称dec

如何去除项目里面的SVN和CVS文件夹

SVN和CVS是我们常使用的项目版本管理工具,为我们的工作带来了很大的方便.但是,有时候我们需要删除里面的SVN和CVS文件夹. 1 如何快速的删除项目中的版本控制文件夹  (1) 删除项目中的SVN文件夹.我们可以使用bat脚本来实现快速递归删除,代码如下: @echo off echo Deleting SVN folders and files under: %1 REM Open Folder specified by parameter. cd %1 REM Recursive del

nopcommerce里面的@Html.Widget("home_page_top") 是什么?

很多朋友在修改模板的时候看到很多类似@Html.Widget("xxx")的东西,这里简单介绍一下流程: 比如@Html.Widget("home_page_top"),首先要知道Html.Widget是什么,这是Html的一个扩展方法,位于Nop.Web.Framework\HtmlExtensions.cs public static MvcHtmlString Widget(this HtmlHelper helper, string widgetZone)

List&lt;List&lt;model&gt;&gt;如何更快捷的取里面的model?

访问接口返回数据类型为List<List<model>>,现在想将其中的model插入数据库,感觉一点点循环有点傻,0.0...,各位有没有其他的方法? List<List<model>>如何更快捷的取里面的model? >> golang 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/golang/1010000008921500/ListltListltmodelgtgt如何更快捷的取里面的model

遍历交换机里面的mac地址,与公司登记mac合法的mac地址进行对比

脚本目的:查找mac黑名单 日    期:2015年08月20日 联系邮箱:[email protected] Q Q  群:1851 15701 51CTO博客首页:http://990487026.blog.51cto.com 开源社区,有你更精彩! 简介: 遍历交换机里面的mac地址,与公司登记mac合法的mac地址进行对比,匹配到了是合法的,未匹配到就是黑名单. 需求分析:查找mac黑名单 公司登记的PC,MAC,Server设备的mac地址,有一个表单 rmac文件 公司登记的是这样的

SQL 里解析 XML 格式 字段 信息

DECLARE @ItemMessage XML DECLARE @ItemTable TABLE(No NVARCHAR(300),zje NVARCHAR(300),yfje NVARCHAR(300),bcje NVARCHAR(300),URL NVARCHAR(300),Remark NVARCHAR(300)) SET @ItemMessage=N'<List> <item> <No>SM-JG-201303-0189</No> <zje&

nodejs分离html文件里面的js和css

摘要: 本文要实现的内容,使用nodejs 对文件的增删改查,演示的例子->分离出一个html 文件里面的script 和style 里面的内容,然后单独生成js文件和css 文件.中间处理异步的api->async/await , Promise 项目托管:extract-js-css , 欢迎star 直接上代码: // import fs from 'fs' var fs = require('fs') // import csscomb from 'csscomb' // var cs

Afianl框架里面的FinalBitmap加载网络图片

在Afianl框架里,FinalBitmap如何加载网络图片?有什么简单的方法吗?现在让麦子学院的android开发老师讲讲afina框架里面的finalbitmap加载网络图片的方法,Afinal里边FinalBitmap:用于显现bitmap图像,而无需思考线程并发和oom等疑问. 1.测验恳求 运用页面翻开http://avatar.csdn.net/C/6/8/1_bz419927089.jpg"可以看到一张图像. 2.新建FinalBitmap目标 1 FinalBitmap bitm