SQL常用流程控制语句总结来源
2007-12-17 22:31
459 查看
SQL常用流程控制语句总结 :
一 IF ELSE
IF <条件表达式>
<命令行或程序块>
[ELSE [条件表达式]
<命令行或程序块>]
例子:
declare @a int , @b int
set @a =120
if( (select count(id) from table_0 where id =@b ) =1)
insert into table_1 values ( @a,1,1)
else
insert into table_2 values ( @a,1,1)
意思是:定义变量a 和b ,初始化a为120,如果表table_0里id等于b的记录有一条的话就将 (a,1,1)插入到表table_1里,否则插入到表table_2里。
二 CASE
CASE 命令有两种语句格式
CASE <运算式>
WHEN <运算式> THEN <运算式>
........................
WHEN <运算式> THEN <运算式>
[ELSE <运算式>]
END
CASE
WHEN <条件表达式> THEN <运算式>
.................
WHEN <条件表达式> THEN <运算式>
[ELSE <运算式>]
END
例子
use pangu
update employee
set e_wage =
case
when job_level = ’1’ then e_wage*2
when job_level = ’2’ then e_wage*3
when job_level = ’3’ then e_wage*4
else e_wage*1.05
end
case 只执行第一个匹配的子句
意思是:更新员工表里e_wage字段的值为原来的2倍,如果该记录的job_level值为1;
更新员工表里e_wage字段的值为原来的3倍,如果该记录的job_level值为2;
更新员工表里e_wage字段的值为原来的4倍,如果该记录的job_level值为3;
三 WHILE BEGIN BREAK CONTINUE END
WHILE <条件表达式>
BEGIN
<命令行或程序块>
[BREAK]
[CONTINUE]
[命令行或程序块]
END
例子:
declare @a int ,@b int
set @a=120
while(@a >100)
begin
insert into talbe values (@b ,1 ,1 )
set @a=@a-1
end
意思是:定义两变量a,b,初始化a等于120 ,如果a大于100,则插入表table一条记录,同时a减1,
循环执行到(@a >100)不成立为止。
来个综合点的例子吧,
declare @a ,@b
set @a=(select max(id) from talbe_0)
while(@a>100)
update table_1 set x = case when y=0 then '0' when y=1 then '1' when y=3 then '3' end
update table_2 set x2 = case when y2=0 then '0' else '1' end
set @a=@a-1
end
来源:IT传媒网(www.cniter.com)
一 IF ELSE
IF <条件表达式>
<命令行或程序块>
[ELSE [条件表达式]
<命令行或程序块>]
例子:
declare @a int , @b int
set @a =120
if( (select count(id) from table_0 where id =@b ) =1)
insert into table_1 values ( @a,1,1)
else
insert into table_2 values ( @a,1,1)
意思是:定义变量a 和b ,初始化a为120,如果表table_0里id等于b的记录有一条的话就将 (a,1,1)插入到表table_1里,否则插入到表table_2里。
二 CASE
CASE 命令有两种语句格式
CASE <运算式>
WHEN <运算式> THEN <运算式>
........................
WHEN <运算式> THEN <运算式>
[ELSE <运算式>]
END
CASE
WHEN <条件表达式> THEN <运算式>
.................
WHEN <条件表达式> THEN <运算式>
[ELSE <运算式>]
END
例子
use pangu
update employee
set e_wage =
case
when job_level = ’1’ then e_wage*2
when job_level = ’2’ then e_wage*3
when job_level = ’3’ then e_wage*4
else e_wage*1.05
end
case 只执行第一个匹配的子句
意思是:更新员工表里e_wage字段的值为原来的2倍,如果该记录的job_level值为1;
更新员工表里e_wage字段的值为原来的3倍,如果该记录的job_level值为2;
更新员工表里e_wage字段的值为原来的4倍,如果该记录的job_level值为3;
三 WHILE BEGIN BREAK CONTINUE END
WHILE <条件表达式>
BEGIN
<命令行或程序块>
[BREAK]
[CONTINUE]
[命令行或程序块]
END
例子:
declare @a int ,@b int
set @a=120
while(@a >100)
begin
insert into talbe values (@b ,1 ,1 )
set @a=@a-1
end
意思是:定义两变量a,b,初始化a等于120 ,如果a大于100,则插入表table一条记录,同时a减1,
循环执行到(@a >100)不成立为止。
来个综合点的例子吧,
declare @a ,@b
set @a=(select max(id) from talbe_0)
while(@a>100)
update table_1 set x = case when y=0 then '0' when y=1 then '1' when y=3 then '3' end
update table_2 set x2 = case when y2=0 then '0' else '1' end
set @a=@a-1
end
来源:IT传媒网(www.cniter.com)
相关文章推荐
- SqlServer和Oracle中一些常用的sql语句5 流程控制语句
- SqlServer和Oracle中一些常用的sql语句5 流程控制语句
- SqlServer和Oracle中一些常用的sql语句5 流程控制语句
- PL/SQL知识总结(1):PL/SQL块结构和流程控制语句
- Java复习笔记+经验总结-01 运算符 表达式 数组 流程控制语句
- SQL 流程控制语句 之五 return 语句介绍
- 常用SQL语句回忆总结
- JavaScript程序中的流程控制语句用法总结
- SQL流程控制语句
- T-SQL-流程控制语句 (转载)
- 常用sql语句总结-oracle
- 常用sql语句总结
- 常用SQL语句总结(3)
- 黑马程序员——流程控制语句的总结笔记
- T-SQL流程控制语句:两个简单的求和练习
- 【DB.PL/SQL】程序流程控制 —— GOTO语句
- oracle总结:常用sql语句
- ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)
- mysql常用sql语句总结
- 11、SQL流程控制语句学习(一):变量及控制语句种类