MySql存储过程—5、逻辑判断,条件控制
2013-04-09 20:55
190 查看
同编写程序类似,存储过程中也有对应的条件判断,功能类似于if、switch。在MySql里面对应的是IF和CASE
1、IF判断
IF判断的格式是这样的:
[sql]
IF expression THEN commands
[ELSEIF expression THEN commands]
[ELSE commands]
END IF; www.2cto.com
这里expression是我们的判断表达式;ELSE IF 和ELSE都是可选的;command就是当条件为真(true为1,false为0)时执行的命令。比如我们设计一个存储过程用于返回商品的价格,这里价格通过传入的参数来判断是要带税收的价格还是没有带税收的价格。先看看表的数据:
然后下面是我们的存储过程:
存储过程的话有两个输入参数,第一个isTaxed表示是不是要带税价格,第二个是产品的名称;在存储过程里面定义了两个变量,finalPrice用来保存价格,而taxRate表示税率。这里代码比较简单,就是判断下如果是要加税,就把原来的价格乘上税率。下面是测试结果:
true的情况表示是带税的价格。好了这个是使用IF的一个例子,下面看看CASE;
2、CASE的使用
同编程里面的那个switch ....case.....类似,使用CASE同编程一样也是当判断比较多时便于阅读和维护,我们也来看下CASE的语法:
[sql]
CASE case_expression
WHEN when_expression THEN commands
WHEN when_expression THEN commands
...
ELSE commands
END CASE;
a、这里可以看到CASE好比我们编程里面的那个switch,后面的case_expression就好比switch后面跟着的表达式; www.2cto.com
b、然后WHEN则类似编程里面的case,when_expression类似case后面跟着的值,commands则对应于相应的case下执行的命令;
c、最后一个 ELSE 则类似于default,就是如果都没在上面那些WHEN里面的情况时执行的命令。
下面我们假设不同类型的商品对应的税收税率是不一样的情况来看个例子,这里假设甜点的税率是0.05,奶制品的是0.1,家具类的是0.2:,下面是存储过程:
上面增加了一个保存产品类型的一个变量proType,用来保存商品类型。然后使用CASE来进行判断来设置税率,下面是测试的部分:
可以看到沙发的价格是1250*1.2=1500,而蛋糕的价格是10*1.05 = 10.5
1、IF判断
IF判断的格式是这样的:
[sql]
IF expression THEN commands
[ELSEIF expression THEN commands]
[ELSE commands]
END IF; www.2cto.com
这里expression是我们的判断表达式;ELSE IF 和ELSE都是可选的;command就是当条件为真(true为1,false为0)时执行的命令。比如我们设计一个存储过程用于返回商品的价格,这里价格通过传入的参数来判断是要带税收的价格还是没有带税收的价格。先看看表的数据:
然后下面是我们的存储过程:
存储过程的话有两个输入参数,第一个isTaxed表示是不是要带税价格,第二个是产品的名称;在存储过程里面定义了两个变量,finalPrice用来保存价格,而taxRate表示税率。这里代码比较简单,就是判断下如果是要加税,就把原来的价格乘上税率。下面是测试结果:
true的情况表示是带税的价格。好了这个是使用IF的一个例子,下面看看CASE;
2、CASE的使用
同编程里面的那个switch ....case.....类似,使用CASE同编程一样也是当判断比较多时便于阅读和维护,我们也来看下CASE的语法:
[sql]
CASE case_expression
WHEN when_expression THEN commands
WHEN when_expression THEN commands
...
ELSE commands
END CASE;
a、这里可以看到CASE好比我们编程里面的那个switch,后面的case_expression就好比switch后面跟着的表达式; www.2cto.com
b、然后WHEN则类似编程里面的case,when_expression类似case后面跟着的值,commands则对应于相应的case下执行的命令;
c、最后一个 ELSE 则类似于default,就是如果都没在上面那些WHEN里面的情况时执行的命令。
下面我们假设不同类型的商品对应的税收税率是不一样的情况来看个例子,这里假设甜点的税率是0.05,奶制品的是0.1,家具类的是0.2:,下面是存储过程:
上面增加了一个保存产品类型的一个变量proType,用来保存商品类型。然后使用CASE来进行判断来设置税率,下面是测试的部分:
可以看到沙发的价格是1250*1.2=1500,而蛋糕的价格是10*1.05 = 10.5
相关文章推荐
- MySql存储过程—逻辑判断,条件控制,循环控制
- MySql存储过程之逻辑判断和条件控制
- MySql存储过程—5、逻辑判断,条件控制
- MySql存储过程—5、逻辑判断,条件控制
- MySql存储过程—逻辑判断,条件控制,循环控制
- MySql存储过程之逻辑判断和条件控制
- MySql存储(逻辑判断/条件控制/循环控制)
- MySQL存储过程之代码块、条件控制、迭代
- MySQL存储过程的循环控制指令
- shell 调用mysql 存储过程判断真假
- mysql存储过程学习笔记--区块,条件,循环
- 初学mysql(十)-数据库之存储过程、函数与游标-自定义函数和流程控制(下)
- MYSQL基础(视图、索引、存储过程与函数、流程控制语句)
- MySQL存储过程中判断形参是否为空null
- SQL Server不能通过条件控制生成同名的存储过程
- MySQL存储过程的循环控制指令
- mysql存储过程中使用select count(*) into 变量名 from +表+ where条件的用法
- 关于对MYSQL存储过程传递参数是纯数字还是字符串的判断
- 存储过程之代码块、条件控制、迭代
- 存储过程中sql语句按变量进行判断执行相应的查询条件