SQL - 15.变量和流程控制
局部变量_先声明再赋值
声明局部变量
DECLARE @变量名 数据类型 DECLARE @bookName varchar(20) DECLARE @bId int
赋值
SET @变量名 =值 --set用于普通的赋值 SELECT @变量名 = 值 --用于从表中查询数据并赋值
例:
declare @mo money --声明变量 select @mo=b_money from Book where b_title='.NETMVC3' --赋值 @mo=57.00 select * from Book where b_money<@mo --使用变量
变量分为:
局部变量:
局部变量必须以标记@作为前缀 ,如@Age int
局部变量:先声明,再赋值
全局变量(系统变量):
全局变量必须以标记@@作为前缀,如@@version
全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值
IF ELSE
IF(条件表达式)
BEGIN --相当于C#里的{
语句1 ……
END --相当于C#里的}
ELSE
BEGIN
语句1
……
END
例:
问题:
统计并显示所有书籍价格(b_money) 的平均值,如果平均价格在50以上,显示“A“,并显示平均价格最高的2本书;如果在50以下,显示“B“,并显示平均价格最少的2本书。分析:
第一步,统计平均价格存入临时变量;
第二步,用IF-ELSE判断;declare @mon money select @mon = AVG(b_money) from Book select @mon 平均价 if @mon >=50 begin select 'A' 大于等于50 select top 2 * from Book order by b_money desc end else begin select 'B' 小于50 select top 2 * from Book order by b_money asc end
WHILE循环
WHILE(条件表达式)
BEGIN --相当于C#里的{
语句
……
BREAK
END --相当于C#里的}
例:
问题:
书籍价格上涨,确保每本书价格最少50元。提价:先每本都加2元,看是否都价格达标,如果没有全部达标,每本再加2元,再看是否都达标,如此反复提价,直到所有书都达标为止 。
分析:
第一步,统计没达标的本数 ;
第二步,如果有书没通过,提价;
第三步,循环判断。
declare @mon int select @mon = COUNT(*) from book where b_money<50 select @mon 低于50的书数 while (@mon>0) begin update book set b_money=b_money+2 select @mon = COUNT(*) from book where b_money<50 end select @mon 低于50的书数 select * from book另一种写法:
DECLARE @mon int WHILE(1=1) --条件永远成立 BEGIN SELECT @mon=COUNT(*) FROM Book WHERE b_money<50 --统计不达标本数 IF (@mon>0) UPDATE Book --每本加元 SET b_money=b_money+2 ELSE BREAK --退出循环(只有一行语句可省begin-end) END SELECT * FROM Book
aaaa
作者:【唐】三三
出处:https://www.cnblogs.com/tangge/archive/2012/08/21/2649836.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具