SQL Server —— While语句循环

一:简介

while 循环是有条件的循环控制语句。满足条件后,再执行循环体中的SQL语句

while: break, 如果有多条语句可以在while后面添加begin-end。关于while的语法

while(条件)

-- begin

-- 语句1

-- 语句2

-- break 根据情况是否添加break

-- end

二 关于While的实例1

把10条数据添加一个表中

sql 复制代码
create table S1
(
    id int not null primary key identity(1,1),
    name varchar(10) not null default ('')
)
declare @count int
set @count = 0
while(@count<10)
    begin
    set @count = @count + 1
    insert into S1(name) values ('鲁班'+ CONVERT(varchar(10), @count)+'号')
    end
select * from S1

执行后效果图如下

三 关于while循环的实例2

循环例子 把成绩csharp小于60 修改成60

while(1=1) 死循环,C#条件比较时1==1,但是t-sql比较1=1

sql 复制代码
declare @stuid int ,@csharp int -- 学号和C#成绩
while(1=1)
	begin 
		-- 先查询成绩小于60的学生 把学号和cs成绩赋值给对应的变量
		select top 1 @stuid = StudentId,@csharp = CSharp from ScoreList where CSharp < 60
		-- 找出成绩小于60的个数,如果个数小于0 证明没有小于60
		if((select count(*)from ScoreList where CSharp<60 )>0)
			-- 更新成绩
			update ScoreList set CSharp = 60 where StudentId = @stuid
		else --没有小于60 跳出循环
			break
		end
select * from ScoreList

四 总结

1 有限次数的循环 通过一个变量在循环体里面每次加一,直到循环条件不成立的时候跳出循环

2 没有确定次数的循环,通过横成立条件进行循环 通过break跳出循环体

相关推荐
倔强的石头_1 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
云技纵横1 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
沉默王二1 天前
面试官:RAG 不用向量数据库,用 MySQL 硬扛?我:100 万向量不是很轻松?
mysql·面试·ai编程
冬奇Lab2 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
小猿姐2 天前
MySQL Top 10 热点问题 AI 运维实战:从内核诊断到云原生运维
mysql·云原生·aiops
ClouGence2 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
云技纵横2 天前
Gap Lock 死锁实战:5 秒在本地复现 MySQL 间隙锁死锁
后端·mysql
无响应de神2 天前
三、用户与权限管理
数据库·mysql
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql