MySQL 存储过程CASE语句用法

MySQL提供了一个替代的条件语句CASE。 MySQL CASE语句使代码更加可读和高效。

CASE语句有两种形式:简单的搜索CASE语句。下面讲讲MySQL 存储过程CASE语句用法。

1,CASE语法结构

     CASE  case_expression
    WHEN when_expression_1 THEN commands
   WHEN when_expression_2 THEN commands
    ...
    ELSE commands
   END CASE;

2,CASE应用实例

   DELIMITER $$

CREATE PROCEDURE GetCustomerShipping(
in p_customerNumber int(11),
out p_shiping varchar(50))
BEGIN
DECLARE customerCountry varchar(50);

SELECT country INTO customerCountry

FROM customers
WHERE customerNumber = p_customerNumber;

CASE customerCountry

WHEN ‘USA‘ THEN
SET p_shiping = ‘2-day Shipping‘;
WHEN ‘Canada‘ THEN
SET p_shiping = ‘3-day Shipping‘;
ELSE
SET p_shiping = ‘5-day Shipping‘;
END CASE;

END$$

如果WHEN子句中的when_expression与case_expression的值匹配,则ELSE子句中的命令将被执行。ELSE子句是可选的。 如果省略ELSE子句,并且找不到匹配项,MySQL将引发错误。

文章来自 http://www.dc3688.com/

原文地址:http://blog.51cto.com/13959155/2293785

时间: 2024-10-21 01:19:56

MySQL 存储过程CASE语句用法的相关文章

MySQL之alter语句用法总结

MySQL之alter语句用法总结 1:删除列 ALTER TABLE [表名字] DROP [列名称] 2:增加列 ALTER TABLE [表名字] ADD [列名称] INT NOT NULL  COMMENT '注释说明' alter table tableName add newColumn varchar(8) comment '新添加的字段' 3:修改列的类型信息 ALTER TABLE [表名字] CHANGE [列名称][新列名称(这里可以用和原来列同名即可)] BIGINT

Mysql之case语句(附带实例)

这段时间,做项目做累了,好不容易有点个人的学习时间,利用这个小时,总结一下,最近做统计的时候常用的case语句吧. 结构:case  when… then …end 1.判断的同时改变其值 eg:                     select OperatorAccount,                             case                                          when CreateTime>'2016-02-14 16:24

记录一个mysql的case when用法

SELECT wle.*, CASE WHEN '2017-08-10 14:00:00' > wle.et THEN '回看' WHEN wle.st >= '2017-08-10 14:00:00' AND '2017-08-10 14:00:00' < wle.et THEN '直播中' WHEN wle.st > '2017-08-10 14:00:00' < wle.et AND (wles.statusx IS NULL OR wles.statusx != '1

MySQL中case then用法

1.查询图书价格,若价格为null,则显示unknown,若价格为10到20, 则显示10 to 20 SELECT price, CASE WHEN price='null' THEN 'UnKnow' WHEN price>10 and price<20 then '10 to 20' END FROM book; 2. select name, case when birthday<'1981' then 'old' when birthday>'1988' then 'yo

mysql存储过程中like用法

CREATE PROCEDURE `proc_init_tagsData`() begin DECLARE  v_keyword varchar(30); DECLARE  v_tag_id int default -1; DECLARE  v_done int; DECLARE v_count int default 0; -- 定义游标 DECLARE rs_cursor CURSOR FOR select keyword from t_keyword where s_flag=1 orde

MySQL存储过程 DELIMITER的作用及用法

存储过程是一个代码段,在mysql执行过程中,遇到分号就执行了,怎么去改掉分号呢,让代码继续执行呢,下面讲讲MySQL存储过程 DELIMITER的作用及用法. 1,MySQL存储过程 DELIMITER的作用 改变执行语句的分号,可以改成 DELIMITER // 或者 DELIMITER $$ 2, MySQL存储过程 DELIMITER的用法 DELIMITER $$ //定义 && CREATE PROCEDURE GetAllProducts() BEGINSELECT * FR

MySQL存储过程详解 mysql 存储过程

MySQL存储过程详解  mysql 存储过程 (2010-12-13 10:59:38) 转载▼ 标签: it 分类: mysql mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保

MySQL存储过程详解 mysql 存储过程(转:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html)

转:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和

mysql存储过程详解

1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的.数据库中的存储过程可以