SQL Server笔记 -- 第13章:IF...ELSE

第13.1节:单个IF语句

与大多数其他编程语言一样,T-SQL也支持IF...ELSE语句。

例如,在下面的示例中,1 = 1是表达式,它计算为True,控制进入BEGIN...END块,Print语句打印字符串'One is equal to One'

sql 复制代码
IF ( 1 = 1) --<-- 某个表达式
BEGIN
    PRINT 'One is equal to One'
END

第13.2节:多个IF语句

我们可以使用多个IF语句来完全独立地检查多个表达式。

在下面的示例中,每个IF语句的表达式都会被计算,如果为真,则执行该BEGIN...END块内的代码。在这个特定示例中,第一个和第三个表达式为真,因此只有那些print语句会被执行。

sql 复制代码
IF (1 = 1) --<-- 某个表达式 --<-- 这是真
BEGIN
    PRINT 'First IF is True' --<-- 这将被执行
END

IF (1 = 2) --<-- 某个表达式
BEGIN
    PRINT 'Second IF is True'
END

IF (3 = 3) --<-- 某个表达式 --<-- 这是真
BEGIN
    PRINT 'Thrid IF is True' --<-- 这将被执行
END

第13.3节:单个IF...ELSE语句

在单个IF...ELSE语句中,如果IF语句中的表达式计算为True,则控制进入第一个BEGIN...END块,并且只有该块内的代码被执行,Else块被简单地忽略。

另一方面,如果表达式计算为False,则ELSE BEGIN...END块被执行,控制永远不会进入第一个BEGIN...END块。

在下面的示例中,表达式将计算为false,Else块将被执行,打印字符串'First expression was not true'

sql 复制代码
IF ( 1 <> 1) --<-- 某个表达式
BEGIN
    PRINT 'One is equal to One'
END
ELSE
BEGIN
    PRINT 'First expression was not true'
END

第13.4节:带有最终ELSE语句的多个IF... ELSE

如果我们有多个IF...ELSE IF语句,但我们还想在没有任何表达式计算为True时执行一些代码,那么我们可以简单地添加一个最终的ELSE块,只有当IF或ELSE IF表达式都不计算为true时,该块才会被执行。

在下面的示例中,IF或ELSE IF表达式都不为True,因此只有ELSE块被执行并打印'No other expression is true'

sql 复制代码
IF ( 1 = 1 + 1 )
BEGIN
    PRINT 'First If Condition'
END
ELSE IF (1 = 2)
BEGIN
    PRINT 'Second If Else Block'
END
ELSE IF (1 = 3)
BEGIN
    PRINT 'Third If Else Block'
END
ELSE
BEGIN
    PRINT 'No other expression is true' --<-- 只有这条语句会被打印
END

第13.5节:多个IF...ELSE语句

通常我们需要检查多个表达式并根据这些表达式采取特定操作。这种情况使用多个IF...ELSE IF语句来处理。

在此示例中,所有表达式从上到下进行评估。一旦表达式计算为true,该块内的代码就会被执行。如果没有表达式计算为true,则不会执行任何操作。

sql 复制代码
IF (1 = 1 + 1)
BEGIN
    PRINT 'First If Condition'
END
ELSE IF (1 = 2)
BEGIN
    PRINT 'Second If Else Block'
END
ELSE IF (1 = 3)
BEGIN
    PRINT 'Third If Else Block'
END
ELSE IF (1 = 1) --<-- 这是True
BEGIN
    PRINT 'Last Else Block' --<-- 只有这条语句会被打印
END
相关推荐
三品吉他手会点灯1 小时前
C语言学习笔记 - 20.C编程预备计算机专业知识 - 变量为什么必须的初始化【重点】
c语言·笔记·学习
zh1570231 小时前
JavaScript中WorkerThreads解决服务端计算瓶颈
jvm·数据库·python
kobesdu1 小时前
【ROS2实战笔记-12】rosshow:终端里的盲文可视化与无头机器人的现场调试
笔记·机器人·ros·移动机器人
代码AI弗森1 小时前
一文理清楚“算力申请 / 成本测算 / 并发评估”
java·服务器·数据库
sakiko_1 小时前
UIKit学习笔记1-创建项目(使用UIKit)、使用组件
笔记·学习
智者知已应修善业2 小时前
【51单片机中的打飞机设计】2023-8-25
c++·经验分享·笔记·算法·51单片机
摇滚侠2 小时前
expdp 查看帮助
java·数据库·oracle
流年似水~2 小时前
MCP协议实战:从零搭建一个让Claude能“看见“数据库的工具服务
数据库·人工智能·程序人生·ai·ai编程
2401_871492852 小时前
Vue.js监听器watch利用回调函数处理级联下拉框数据联动
jvm·数据库·python
志栋智能3 小时前
超自动化安全:构建智能安全运营的核心引擎
大数据·运维·服务器·数据库·安全·自动化·产品运营