SQl Server——流程控制语句

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 需求:查询成绩表sc编号为801,学科为01这门课程所有学生的平均分,对查询到的平均分按等级输出相应的语句

IF...ELSE语句:条件处理语句


IF Boolean_expression
{sql_statement|statement_block}
ELSE
{sql_statement|statement_block}


需求:查询成绩表sc编号为801,学科为01这门课程所有学生的平均分,以此来对学生表现进行评价


declare @num int                          --声明变量
select @num=avg(score)                    --给变量赋值为平均分
from sc
where 课程编号='801' and CId='01'          --指定查询
if @num>90                                --if...else语句判断平均分是否大于90
begin
    print '这门课学生学得非常不错!'        --打印结果
end
else
    print '这门课学生还需要继续努力!'


输出结果:                           2020041909400062.png 


IF...ELSE语句嵌套


需求:查询成绩表sc编号为801,学科为01这门课程所有学生的平均分,对查询到的平均分按等级输出相应的语句

20200419095145614.png

declare @num int
select @num=avg(score)
from sc
where 课程编号='801' and CId='01'
if @num>=60
begin
    if @num<70
        print'成绩刚刚及格,还要继续努力!'
    else if @num<80
        print'成绩中等'
    else if @num<90
        print'成绩良好'
    else print'成绩优秀,希望把经验与大家分享分享!'
end
else
    print'这一科学生们还需要加把劲啊!'


输出结果:20200419095854987.png

   

Case语句:分支语句


现有如下员工信息表:

20200419100133675.png

需求:根据每个员工的所在职位分发员工职称


select 员工姓名, 所在职位, 员工职称=     --设置要显示的列
case 所在职位                           --case,判断条件为所在职位字段
when '经理' then '高级职称'             --所在职位为经理的员工,职称为高级职称
when '主管' then '中级职称'
when '普通职员' then '初级职称'
else '其他职称'
end 
from 新员工信息                         --要查询的表


输出结果:          

   2020041910083580.png              


While语句:循环语句。执行一段重复的语句


WHILE_E Boolean_expression                循环条件
{sql_statement | statement_block}
[BREAK]                                                   break跳出整个循环
{sql_statement | statement_block}
[CONTINUE]                                            continue跳出本次循环执行下次循环
{sql_statement | statement_block}


需求:执行1~100的累加


declare @i int, @sum int       --声明变量
set @i=1                       --给变量赋初值
set @sum=0
while @i<=100
begin
    set @sum=@sum+@i            --对和进行累加
    set @i=@i+1
end
    print @sum                 --使用print函数打印和


执行结果:

20200419101749500.png

思维导图

20200419102004245.png


总结


通过这次对SQL的学习让我大跌眼界,发现原来不是只有像vb、C这些编程语言才有流程控制语句,数据库也是有的,只是以前不知道。要学的东西真的很多,但每一门语言之间它们都是会有共通的地方,比如流程控制语句!所以我们在学习中要善于去发现那些相通的地方,及时总结相同之处,通过一遍一遍的学习在之前的基础上进行累加得到升华!多练习!

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
6月前
|
SQL IDE Java
Java连接SQL Server数据库的详细操作流程
Java连接SQL Server数据库的详细操作流程
|
3月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
5月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
134 13
|
5月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
5月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
73 6
|
5月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
458 1
|
5月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
378 3
|
4月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
530 0
|
5月前
|
SQL 存储 安全
数据库数据恢复—SQL Server数据库出现逻辑错误的数据恢复案例
SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。
|
5月前
|
SQL 存储 关系型数据库
关系型数据库SQL Server学习
【7月更文挑战第4天】
87 2