MySQL中类似ORACLE中decode()判断语句实现
一. IF函数
1. IF语句
IF expression THEN statements;
END IF;
2. IF ELSE语句
IF expression THENstatements;
ELSEelse-statements;
END IF;或IF(expr1,expr2,expr3)
-- expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3
3. IF ELSEIF ELSE语句
IF expression THENstatements;
ELSEIF elseif-expression THENelseif-statements;
...
ELSEelse-statements;
END IF;
二. CASE语句
1. 简单CASE语句
CASE case_expressionWHEN when_expression_1 THEN commandsWHEN when_expression_2 THEN commands...ELSE commands
END CASE;
- 简单CASE语句来检查表达式的值与一组唯一值的匹配
case_expression
可以是任何有效的表达式。我们将case_expression
的值与每个WHEN子句中的when_expression
进行比较,如果case_expression
和when_expression_n
的值相等,则执行相应的WHEN分支中的命令(commands
)- 如果
WHEN
子句中的when_expression
与case_expression
的值匹配,则ELSE
子句中的命令将被执行。ELSE
子句是可选的。 如果省略ELSE
子句,并且找不到匹配项,MySQL将引发错误
举例:
CASE customerCountryWHEN 'USA' THENSET p_shiping = '2-day Shipping';WHEN 'Canada' THENSET p_shiping = '3-day Shipping';ELSESET p_shiping = '5-day Shipping';END CASE;
2. 可搜索CASE语句
CASEWHEN condition_1 THEN commandsWHEN condition_2 THEN commands...ELSE commands
END CASE;
- MySQL评估求值
WHEN
子句中的每个条件,直到找到一个值为TRUE
的条件,然后执行THEN子句中的相应命令(commands
) - 如果没有一个条件为
TRUE
,则执行ELSE
子句中的命令(commands
)。如果不指定ELSE
子句,并且没有一个条件为TRUE
,MySQL将发出错误消息 - MySQL不允许在
THEN
或ELSE
子句中使用空的命令。 如果您不想处理ELSE
子句中的逻辑,同时又要防止MySQL引发错误,则可以在ELSE子句中放置一个空的BEGIN END
块
举例:
CASE WHEN creditlim > 50000 THEN SET p_customerLevel = 'PLATINUM';WHEN (creditlim <= 50000 AND creditlim >= 10000) THENSET p_customerLevel = 'GOLD';WHEN creditlim < 10000 THENSET p_customerLevel = 'SILVER';END CASE;
转载注明出处:www.meidanlong.com
MySQL中类似ORACLE中decode()判断语句实现相关推荐
- mysql实现类似oracle中rownum的效果
为什么80%的码农都做不了架构师?>>> SELECT @rownum:=@rownum+1 AS rownum FROM t1,(SELECT @rownum:=0) t2 //通 ...
- 【mysql】使用变量实现类似oracle中lag函数功能
mysql使用变量实现类似oracle中的lag函数功能 说明: 有一个订单表,每次下单都会记录是否使用了券,现模拟一个需求,将订单表插入日志表达到记录用户上一次是否用券以及此订单是否用券的情况 #- ...
- 模板上 php dede,DEDE模板中使用php和if判断语句实例
这篇文章主要为大家详细介绍了DEDE模板中使用php和if判断语句实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 今天刚刚在给用户用织梦CMS二次开发站点的 ...
- 帝国cms中常用标签/灵动标签/判断语句
帝国cms中常用标签(总结) 在帝国cms实际建站应用中,对首页.列表页.内容页这三个页面模板支持的变量是不同的.爱折腾的摄影大叔将帝国cms中常用标签/灵动标签/判断语句(帝国cms中常用标签总结归 ...
- Python教学 | Python 中的分支结构(判断语句)【附本文代码和数据】
查看原文:[数据seminar]Python教学 | Python 中的分支结构(判断语句)[附本文代码和数据] Part1引言 上期文章我们学习了组合数据类型字典以及元组,这标志着 Python 基 ...
- oracle decode sqlserver,sqlserver 的类似oracle的decode函数
原来系统是在oracle上开发的,后来客户一声令下,就转移到sqlserver了.在写存储过程的时候,发现decode方法没有,可以用case when来替代.但是之前项目会议上领导又提出,客户说有可 ...
- MySQL实现类似Oracle的序列
MySQL实现类似Oracle的序列 2013-10-22 10:33:35 我来说两句 作者:走过的足迹 收藏 我要投稿 MySQL实现类似Oracle的序列 Oracle ...
- day12_oracle hint——SQL优化过程中常见Oracle中HINT的30个用法
在SQL语句优化过程中,经常会用到hint, 以下是在SQL优化过程中常见Oracle中"HINT"的30个用法 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方 ...
- mysql nextval同步锁_mysql中实现类似oracle中的nextval函数
我们知道mysql中是不支持sequence的,一般是建表的时间使这个字段自增. 如 create table table_name(id int auto_increment prima ...
最新文章
- AI推理与Compiler
- Liux技巧总结之--解压各种文件
- Google 的 QUIC 华丽转身成为下一代网络协议: HTTP/3.0
- 喜马拉雅贺雯迪:基于端到端TTS实现更具生动、富有情感的语音合成表现
- 泰勒及洛朗展开学习笔记
- ASP.NET验证控件祥解
- Android应用第一次安装成功点击“打开”后Home键切出应用后再点击桌面图标返回导致应用重启问题...
- M文件---脚本与函数
- 现代计算机教学的特点有哪些,现代信息技术对孩子教育有哪些帮助
- 中国铁路车次编号规则
- 按3倍中误差去除粗差(C++)
- 《亲密关系》良句收录和观后观想
- win10的计算机是哪个版本,Win10七大版本哪个好 Windows10系统各版本功能区别详解...
- 前端性能优化方案(图片)
- 单端阻抗为什么是50欧姆-探究
- 解决网络共享打印机连接老是需要重新连接的方法
- Do Transformers Really Perform Bad for Graph Representation 阅读笔记
- 计算机网络技术跟物联网应用技术,计算机网络工程和物联网应用技术有什么区别...
- 1838.最高频元素的频数
- RESTful API 末尾斜杠
热门文章
- SpringCloud教程 | 第三篇: 服务消费者(Feign)
- Spark Streaming 实战案例(五) Spark Streaming与Kafka
- 使用spark ml pipeline进行机器学习
- 三种通用应用层协议protobuf、thrift、avro对比
- hadoop2.2支持snappy压缩安装及配置
- 使用localStorage写一个简单的备忘录
- 最新设备可利用积雪发电?UCLA研究出积雪式摩擦奈米发电机
- GitLab CI/CD 因git凭据踩坑
- oracle数据库导入导出expdp/impdp命令详细操作过程
- C# 生成 MongoDB 中的 ObjectId