`
chengyue2007
  • 浏览: 1469982 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

sql条件语句

阅读更多

Transact-SQL 语言使用的流程控制命令与常见的程序设计语言类似主要有以下几种控制命令。
4.6.1 IF…ELSE
其语法如下:
IF <条件表达式>
<命令行或程序块>
[ELSE [条件表达式]
<命令行或程序块>]
其中<条件表达式>可以是各种表达式的组合,但表达式的值必须是逻辑值“真”或“假”。ELSE子句是可选的,最简单的IF语句没有ELSE子句部分。IF…ELSE用来判断当某一条件成立时执行某段程序,条件不成立时执行另一段程序。如果不使用程序块,IF或ELSE只能执行一条命令。IF…ELSE可以进行嵌套。

例4-9
declare@x int,@y int,@z int
select @x=1,@y=2, @z=3
if@x>@y
  print'x>y' --打印字符串'x>y'
else if@y>@z
print'y>z'
    else print'z>y'
运行结果如下
z>y
注意:在Transact-SQL中最多可嵌套32级。
4.6.2 BEGIN…END
其语法如下:
BEGIN
<命令行或程序块>
END
BEGIN…END用来设定一个程序块,将在BEGIN…END内的所有程序视为一个单元执行BEGIN…END经常在条件语句,如IF…ELSE中使用。在BEGIN…END中可嵌套另外的BEGIN…END来定义另一程序块。
4.6.3 CASE
CASE 命令有两种语句格式:
CASE <运算式>
WHEN <运算式>THEN<运算式>

WHEN<运算式>THEN<运算式>
[ELSE<运算式>]
END
CASE
WHEN <条件表达式> THEN <运算式>
WHEN <条件表达式> THEN <运算式>
[ELSE <运算式>]
END
CASE命令可以嵌套到SQL命令中。
例4-10:调整员工工资,工作级别为“1”的上调8%,工作级别为“2”的上调7%,工作级别为“3”的上调6%,其它上调5%。
use pangu
update employee
set e_wage =
case
when job_level = ’1’ then e_wage*1.08
when job_level = ’2’ then e_wage*1.07
when job_level = ’3’ then e_wage*1.06
else e_wage*1.05
end
注意:执行CASE子句时,只运行第一个匹配的子名。
4.6.4 WHILE…CONTINUE…BREAK
其语法如下:
WHILE <条件表达式>
BEGIN
<命令行或程序块>
[BREAK]
[CONTINUE]
[命令行或程序块]
END
WHILE 命令在设定的条件成立时会重复执行命令行或程序块。CONTINUE命令可以让程序跳过CONTINUE 命令之后的语句,回到WHILE 循环的第一行命令。BREAK 命令则让程序完全跳出循环,结束WHILE 命令的执行。WHILE 语句也可以嵌套。
例4-11:
declare @x int @y int @c int
例4-11:
declare @x int, @y int, @c int
select @x = 1, @y=1
while @x < 3
begin
print @x --打印变量x 的值
while @y < 3
begin
select @c = 100*@ x+ @y
print @c --打印变量c 的值
select @y = @y + 1
end
select @x = @x + 1
select @y = 1
end
运行结果如下
1
101
102
2
201
202

4.6.5 WAITFOR
其语法如下:
WAITFOR {DELAY <‘时间’> | TIME <‘时间’>
| ERROREXIT | PROCESSEXIT | MIRROREXIT}
WAITFOR 命令用来暂时停止程序执行,直到所设定的等待时间已过或所设定的时间已到才继续往下执行。其中‘时间’必须为DATETIME 类型的数据,如:‘11:15:27’,
但不能包括日期各关键字含义如下:
· DELAY 用来设定等待的时间最多可达24 小时;
· TIME 用来设定等待结束的时间点;
· ERROREXIT 直到处理非正常中断;
· PROCESSEXIT 直到处理正常或非正常中断;
· MIRROREXIT 直到镜像设备失败。
例4-12 等待1 小时2 分零3 秒后才执行SELECT 语句
waitfor delay ’01:02:03’
select * from employee
例4-13:等到晚上11 点零8 分后才执行SELECT 语句
waitfor time ’23:08:00’
select * from employee
4.6.6 GOTO
语法如下:
GOTO 标识符
GOTO 命令用来改变程序执行的流程,使程序跳到标有标识符的指定的程序行再继续往下执行。作为跳转目标的标识符可为数字与字符的组合,但必须以“:”结尾,如‘12:’或‘a_1:’。在GOTO 命令行,标识符后不必跟“:”。
例4-14 分行打印字符‘1’、‘2’、‘3’、‘4’、‘5’
declare @x int
select @x = 1
label_1
print @x
select @x = @x + 1
while @x < 6
goto label_1
4.6.7 RETURN
语法如下
RETURN [整数值]
RETURN 命令用于结束当前程序的执行,返回到上一个调用它的程序或其它程序。在括号内可指定一个返回值。
例4-15
declare @x int @y int
select @x = 1 @y = 2
if x>y
return 1
else
return 2
如果没有指定返回值,SQL Server 系统会根据程序执行的结果返回一个内定值,如
表4-5 所示。
 

如果运行过程产生了多个错误,SQL Server系统将返回绝对值最大的数值;如果此时用户此时定义了返回值,则以返回用户定义的值。RETURN语句不能返回NULL值。

 

分享到:
评论

相关推荐

    GridView的过滤条件转成各个数据库Sql条件语句Demo

    关于DevExpress的GridView的过滤条件如何转成相应的语句,dev官网提供了相应的处理方法,方便开发人员调用,目前支持数据库语句有MS Sql 、Oracle 、Access,资源用到的Dev版本是18.1,为了保证能运行,相关程序集...

    自定义SQL查询

    能根据字典动态生成所需要的SQL语句

    程序结合SQL语句结构,动态实现SQL多条件查询语句代码

    程序结合SQL语句结构,动态实现SQL多条件查询语句代码。

    页面传入多个条件——sql语句的拼接

    页面传进来传个条件判断的时候,要用到sql语句的拼接才能解决sql的问题,这是一个小例子。

    易语言模块SQL基本语句.rar

    易语言模块SQL基本语句.rar 易语言模块SQL基本语句.rar 易语言模块SQL基本语句.rar 易语言模块SQL基本语句.rar 易语言模块SQL基本语句.rar 易语言模块SQL基本语句.rar

    VisualC 实效编程 85 SQL语句中设置时段检索条件

    VisualC 实效编程 85 SQL语句中设置时段检索条件VisualC 实效编程 85 SQL语句中设置时段检索条件VisualC 实效编程 85 SQL语句中设置时段检索条件VisualC 实效编程 85 SQL语句中设置时段检索条件VisualC 实效编程 85 ...

    Sql 语句详解

    3. SQL SELECT 语句 5 4. SQL WHERE 子句 7 5. SQL AND & OR 运算符 8 6. SQL ORDER BY 子句 9 7. SQL INSERT INTO 语句 11 8. SQL UPDATE 语句 12 9. SQL DELETE 语句 13 10. SQL TOP 子句 13 11. SQL LIKE 操作符 ...

    Python使用sql语句对mysql数据库多条件模糊查询.pdf

    Python使用sql语句对mysql数据库多条件模糊查询

    SQL查询语句:条件查询,投影查询,排序查询【关系数据库SQL教程4】

    SQL查询语句_条件查询,投影查询,排序查询【关系数据库SQL教程4】

    SQLServer表数据转化为sql语句(存储过程,一键批量导出、导入)

    功能: 根据表名、where条件,生成导出数据的SQL语句。(包含insert语句。结果可一键执行,利于数据导出、导入) 参数: @tableName nvarchar(100) --表名 ,@sqlWhere nvarchar(500) --where条件(传空时,导出全部...

    SQL查询语句精华

    SQL查询语句精华交叉连接 交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。 例,...

    sql语句生成器+支持各大数据库+说明书

    SQL语句生成器的特色 支持几乎所有类型的数据库, 包括小型(桌面)数据库:Fox DBF、Microsoft Execl、Text、Borland Paradox、 中型数据库:Microsoft Access 大型数据库:Microsoft SQL Server、Sybase、Oracle ...

    SQL语句自动生成器

    SQL语句自动生成器简体中文版,可视化设定条件,自动生成语句。

    SQL LIKE语句多条件贪婪匹配算法

    在CMS开发中,经常会有类似这样的需求:  提问——回答模式,经典的例子是百度提问。  提问者提出问题,由其他人回答,其他人可以是用户,也可以是服务商。  在这个模式中,如何充分利用历史数据是关键的...

    sql语句解析.zip

    sql语句分析,主要用于dug模式下打印出来的sql分析,自动对sql语句进行解析,对查询条件、字段赋值进行准确的赋值,非常实用的一款工具。 操作非常简单: 1、copy打印出来的sql 2、点击sql分析,就得到你想要的...

    Golang sqlx 使用sql语句 Where in 解决办法

    方法1、使用语言的for语句循环生成SQL语句中的“?”,类似这样: 新建方法 func placeholders(n int) string { var b strings.Builder for i := 0; i 0 { b.WriteString("?") } return b.String() }  调用...

    SQL语句大全 实例

    sql="update数据表set字段名=字段值where条件表达式" sql="update数据表set字段1=值1,字段2=值2……字段n=值nwhere条件表达式" (3)删除数据记录: sql="deletefrom数据表where条件表达式" sql="deletefrom数据

    SQL选择语句大全

    选择记录的统计、条数、排序、分组等条件,能满足所有选择语句,并有详细的举例解释

    SQL语句自动生成工具

    无需安装和卸载 支持几乎所有的SQL语法: 排序(Order By) 条件(Where) 分组(Group By) 分组条件(Having) 计算字段 SQL查询表 SQL查询子句 丰富的函数 表别名 字段别名(包括计算...

    VisualC 实效编程 86 SQL语句中设置字符串检索条件

    VisualC 实效编程 86 SQL语句中设置字符串检索条件VisualC 实效编程 86 SQL语句中设置字符串检索条件VisualC 实效编程 86 SQL语句中设置字符串检索条件VisualC 实效编程 86 SQL语句中设置字符串检索条件VisualC 实效...

Global site tag (gtag.js) - Google Analytics