mysql if 和 case when 用法 多个when情况用一个语句 存储过程
在实际开发中,经常会用到 if 和 case when的用法,记录一下,以后可以用得到.
DELIMITER $$
USE
`数据库`$$
DROPPROCEDUREIFEXISTS
`GetNoticemsg`$$
CREATE
DEFINER=`root`@`%`
PROCEDURE
`GetNoticemsg`(p_Id
VARCHAR
(64),p_InTime
DATETIME
,p_FunctionId
INT
,p_PersonType
INT
,p_GetType
INT
)
BEGIN
-- GetType 0:获取已发通知,1获取已收通知 -- PersonType 0:家长 1:老师
IF
(p_GetType=0)
THEN
-- 获取已经发送的
IF
(p_PersonType=1)
THEN
-- 如果是老师 (那么就是查询一张表就OK了,只需要查询主表)
CASEWHEN
p_FunctionId=101
THEN
-- 作业
SELECT
'这里写你的代码';
WHEN
p_FunctionId
IN
(102,103,105,106)
THEN
-- 多个情况用一个语句
SELECT
'这里写你的代码';
ENDCASE
; -- else -- 如果是家长,因为家长不可能发送任何通知,所以这里什么都不返回
ENDIF
; ELSEIF(p_GetType=1)
THEN
-- 获取已经收到的通知
IF
(p_PersonType=1)
THEN
-- 如果是老师,老师只能收到 通知老师103的通知,其他的都收不到
CASE
p_FunctionId
WHEN
103
THENSELECT
'这里写你的代码';
ENDCASE
;
ELSE
--
CASEWHEN
p_FunctionId=101
THENSELECT
'这里写你的代码';
WHEN
p_FunctionId
IN
(102,105,106)
THEN
-- 多个情况用一个语句
SELECT
'这里写你的代码';
ENDCASE
;
ENDIF
;
ENDIF
;
mysql if 和 case when 用法 多个when情况用一个语句 存储过程的更多相关文章
- oracle中DECODE与CASE的用法区别
对于CASE与DECODE其实并没有太多的区别,他们都是用来实现逻辑判断.Oracle的DECODE函数功能很强,灵活运用的话可以避免多次扫描,从而提高查询的性能.而CASE是9i以后提供的语法,这个 ...
- MySQL中的case when 中对于NULL值判断的坑
sql中的case when 有点类似于Java中的switch语句,比较灵活,但是在Mysql中对于Null的处理有点特殊 Mysql中case when语法: 语法1: CASE case_val ...
- Mysql coalesce()函数认识和用法
Mysql coalesce()函数认识和用法 coalesce()解释:返回参数中的第一个非空表达式(从左向右): 鉴于在mysql中没有nvl()函数, 我们用coalesce()来代替 ...
- Oracle CASE WHEN 用法介绍
1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索 ...
- mysql中INSTR函数的用法
mysql中INSTR函数的用法 INSTR(字段名, 字符串) 这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始) SELECT * FROM tblTo ...
- Oracle CASE WHEN 用法介绍[Z]
Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ...
- mysql语法之case when then与列转行
mysql语法中case when then与列转行的使用场景非常丰富. case语句类似java中条件分支语句的作用,可以类比java中的switch语句或者if语句来学习. 其语法如下: case ...
- oracle case when 用法
原文:http://www.cnblogs.com/eshizhan/archive/2012/04/06/2435493.html 1. CASE WHEN 表达式有两种形式 --简单Case函数 ...
- MySQL中INSERT的一般用法
原文链接:http://www.blogjava.net/midnightPigMan/archive/2014/12/15/421406.html MySQL中INSERT的一般用法 INSERT语 ...
随机推荐
- 一个完整openlayer的例子,包括marker,popup等
整理转自:http://www.blogjava.net/siriusfx/archive/2007/11/26/163104.html openlayers提供了几十个示例,虽然每个示例都很简单,但 ...
- Framework 类库的事件编程
http://msdn.microsoft.com/zh-cn/library/aa663632.aspx 本页内容 EventHandler 委托 自定义的事件参数 参数化自定义事件 小结 本月的内 ...
- html+css学习笔记 [基础1]
---------------------------------------------------------------------------------------------------- ...
- javascript_22_for_二维数组
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- Spring实现AOP的4种方式(转)
转自:http://blog.csdn.net/udbnny/article/details/5870076 Spring实现AOP的4种方式 先了解AOP的相关术语:1.通知(Advice):通知定 ...
- Reactjs相比较原生方案是绝对的快吗?哪些情况下React有优势
作者:尤雨溪链接:http://www.zhihu.com/question/31809713/answer/53544875来源:知乎著作权归作者所有,转载请联系作者获得授权. 1. 原生 DO ...
- 在MySQL中使用init-connect与binlog来实现用户操作追踪记录
在MySQL中使用init-connect与binlog来实现用户操作追踪记录 分类: MySQL 前言: 测试环境莫名其妙有几条重要数据被删除了,由于在binlog里面只看到是公用账号删除的,无法查 ...
- poj 3735 Training little cats(矩阵快速幂,模版更权威,这题数据很坑)
题目 矩阵快速幂,这里的模版就是计算A^n的,A为矩阵. 之前的矩阵快速幂貌似还是个更通用一些. 下面的题目解释来自 我只想做一个努力的人 @@@请注意 ,单位矩阵最初构造 行和列都要是(猫咪数+1) ...
- SDUT2484算术表达式的转换
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2484&cid=1182 题目描述 小明在学习了数据结构之后,突然想起了以前没有解决的算术 ...
- Android ListView点击失效
item中存在 ImageButton 等可以点击的组件,这会抢先获得ListView的焦点. 从而导致item点击失效