SQL Server控制语句的基本应用
发布时间:2024-01-24 12:52:28
1.语句块(BEGIN…END)
语句块语法如下:
BEGIN
<SQL语句或程序块>
END
BEGIN…END用来设定一个语句块,可以将多条Transact-SQL语句封装起来构成一个语句块,在处理时,整个语句块被视为一条语句。BEGIN…END经常用在条件语句中,如IF…ELSE 或WHILE循环中。BEGIN…END语句可以嵌套使用。
2.判断语句(IF…ELSE)
通常计算机是按顺序执行程序中的语句,但是在许多情况下,语句执行的顺序以及是否执行依赖于程序运行的中间结果,在这种情况下,必须根据某个变量或表达式的值作出判断,以决定执行哪些语句或不执行哪些语句。这时可以利用IF…ELSE语句作出判断,选择执行某条语句或语句块。
判断语句语法如下:
IF <条件表达式>
<命令行或语句块1>
[ ELSE [条件表达式]
<命令行或语句块2> ]
3 检测语句(IF…EXISTS)
IF…EXISTS语句用于检测数据是否存在,而不考虑与之匹配的行数。对于存在性检测而言,使用IF…EXISTS要比使用COUNT(*)>0好,效率更高,因为只要找到第一个匹配的行,服务器就会停止执行SELECT语句。
检测语句语法如下:
IF [NOT] EXISTS (SELECT查询语句)
<命令行或语句块1>
[ELSE]
<命令行或语句块2>
4 多分支判断语句(CASE…WHEN)
CASE…WHEN结构提供了比IF…ELSE结构更多的选择和判断机会,使用它可以很方便地实现多分支判断,从而避免多重IF…ELSE语句嵌套使用。多分支判断语句CASE…WHEN语法有两种格式:
第一种格式语法如下:
CASE <算术表达式>
WHEN <算术表达式> THEN <运算式>
WHEN <算术表达式> THEN <运算式>
[ELSE <算术表达式>]
END
第二种格式语法如下:
CASE
WHEN <条件表达式> THEN <运算式>
WHEN <条件表达式> THEN <运算式>
[ELSE <运算式>]
END
5 循环语句(WHILE)
循环语句可以设置重复执行SQL语句或语句块的条件,只要指定的条件为TRUE(条件成立),就重复执行语句。
循环语句语法如下:
WHILE <条件表达式>
BEGIN
<命令行或程序块>
[BREAK]
[CONTINUE]
[命令行或程序块]
END
6 跳转语句(GOTO)
使用跳转语句GOTO可以改变程序执行的流程,使程序跳到标有标识符的指定程序行,再继续往下执行,作为跳转目标的标识符可以是数字与字符的组合,但必须以“:”结尾。
跳转语句语法如下:
GOTO 标识符:
7 返回语句(RETURN)
返回语句用于结束当前程序的执行返回到上一个调用它的程序或其它程序,在括号内可指定一个返回值。返回语句可使程序从批处理、存储过程、触发器中无条件退出,不再执行RETURN之后的任何语句。返回语句语法如下:
RETURN ([整数值])
8 延期执行语句(WAIT…FOR)
WAITFOR语句用来暂时停止程序执行,直到所设定的等待时间已过或所设定的时刻已到,才继续往下执行。其中时间必须为DATETIME 类型的数据,延迟时间和时刻均采用“HH:MM:SS”格式,在WAITFOR语句中不能指定日期,并且时间长度不能超过24小时。
延期执行语句语法如下:
WAITFOR { DELAY <‘时间'> | TIME <‘时间'> }
sql_statement
DELAY:用来设定等待的时间间隔,最多可达24 小时。
TIME:用来设定等待结束的时间点。
sql_statement:设定的等待时间已过或所设定的时刻已到,要继续执行的SQL操作语句。
猜你喜欢
- # 建表CREATE TABLE `T_TEST` ( `Id` int(11) NOT NULL AUTO_INCREMENT
- 记录训练过程history=model.fit(X_train, Y_train, epochs=epochs,batch_size=bat
- Windows10本机环境:win10未安装node,安装了nvm工具,尝试使用nvm安装我开发环境的node版本(10.9.0 or la
- vue时间格式转化问题1. 效果图2. 需求:前台展示一律用的时间规格yyyy-MM-dd HH:mm:SS,即要求月日
- iterrows(),iteritems(),itertuples()区别Python函数之iterrows, iteritems, ite
- 如果进入了shell交互窗口,python的退出方式只能够用函数不能够用命令,这有时候让人感觉到很不习惯。因为函数会比命令多一个括号的输入,
- 最近做的一个嵌入app的pc端项目,用的也是比较熟悉的vue-cli构建工具构建项目,需要的是打开dist文件夹入口html能加载到本地的静
- 最近将Jesse James Garrett的《用户体验的要素》一书读了两遍,做一些简要的摘录并添加一些个人注释。当然,一本好书绝对不是简单
- 内容介绍将日常工作中遇到的数数据冲突和样本源的方法进行总结,其中主要包括实际业务数据冲突、样本选取问题、数据共线性 等思路,并且长期更新。实
- 本文实例讲述了Python实现删除列表中满足一定条件的元素。分享给大家供大家参考,具体如下:从列表中删除满足一定条件的元素。如:删除一个列表
- 基础环境# +++++ 阿里云OSS开发指南里都有详细的步骤,在这里整理了一下自己需要的东西# 确定开发环境,centOS默认安装了pyth
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN&q
- 本文实例讲述了Python实现的质因式分解算法。分享给大家供大家参考,具体如下:本来想实现一个其它的基本数学算法问题,但是发现在实现之前必须
- SQL Server 2005的新功能为动态管理对象,它们是在指定时间返回某个数据库实例的特殊状态信息的数据库视图或函数。这些对象允许数据库
- 最近基于selenium写了一个python小工具,记录下学习记录,自己运行的环境是Ubuntu 14.04.4, Python 2.7,C
- 单位的小王学习SQL Server已有一段时间了,已经做了个不错的管理系统,有次小王让我帮着看看库的设计有没有问题,其间我发现他的安全意识非
- Selenium Python 提供了一个简单的API 便于我们使用 Selenium WebDriver编写 功能/验收测试。 通过Sel
- 一般情况下,URL 中的参数应使用 url 编码规则,即把参数字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位
- 第一步一般是建立一个关键字替换表 如 id keyword url 等字段第二步是文章显示时把【文章】内容和【关键字替换表】对应的关键字替换
- 1.在vscode中搜索Autoprofixer2.在安装完成之后要配置在需要添加前缀的css文件上,右键点击命令面板,输入Autopref