MySQL视图中如何使用IF和CASE语句

 更新时间:2024年01月31日 08:51:56   作者:pan_junbiao  
这篇文章主要介绍了MySQL视图中如何使用IF和CASE语句问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

MySQL视图使用IF和CASE语句

在创建视图时,经常需要使用到MySQL的流程控制语句,如:IF语句和CASE语句。

示例:

创建MySQL视图中使用IF和CASE语句。

(1)创建员工信息表

-- 判断数据表是否存在,存在则删除
DROP TABLE IF EXISTS tb_staff;
 
-- 创建数据表
CREATE TABLE IF NOT EXISTS tb_staff
( 
	id INT AUTO_INCREMENT PRIMARY KEY COMMENT '编号',
	NAME VARCHAR(50) NOT NULL COMMENT '姓名',
	sex INT COMMENT '性别(1:男;2:女;)',
	dept_code VARCHAR(10) COMMENT '部门编号',
	is_post BIT COMMENT '是否在职(0:否;1:是)'
) COMMENT = '员工信息表';

(2)新增员工数据

-- 新增数据
INSERT INTO tb_staff(NAME,sex,dept_code,is_post) VALUES('pan_junbiao的博客_01',1,'1001',1);
INSERT INTO tb_staff(NAME,sex,dept_code,is_post) VALUES('pan_junbiao的博客_02',2,'1002',1);
INSERT INTO tb_staff(NAME,sex,dept_code,is_post) VALUES('pan_junbiao的博客_03',1,'1003',0);
INSERT INTO tb_staff(NAME,sex,dept_code,is_post) VALUES('pan_junbiao的博客_04',1,'1001',1);
INSERT INTO tb_staff(NAME,sex,dept_code,is_post) VALUES('pan_junbiao的博客_05',2,'1008',1);
INSERT INTO tb_staff(NAME,sex,dept_code,is_post) VALUES('pan_junbiao的博客_06',1,'1001',0);
INSERT INTO tb_staff(NAME,sex,dept_code,is_post) VALUES('pan_junbiao的博客_07',2,'1002',1);
INSERT INTO tb_staff(NAME,sex,dept_code,is_post) VALUES('pan_junbiao的博客_08',1,'1003',0);
INSERT INTO tb_staff(NAME,sex,dept_code,is_post) VALUES('pan_junbiao的博客_09',1,'1001',1);
INSERT INTO tb_staff(NAME,sex,dept_code,is_post) VALUES('pan_junbiao的博客_10',2,'1008',0);

查询员工信息表结果:

(3)创建员工视图,在视图中使用IF和CASE语句

-- 创建视图
CREATE OR REPLACE VIEW view_staff
AS
	SELECT id 
	,NAME
	,IF(sex=1,'男','女') AS sex_name
	,CASE dept_code
		WHEN '1001' THEN '研发部'
		WHEN '1002' THEN '人事部'
		WHEN '1003' THEN '财务部'
		ELSE '其他'
	END AS dept_name
	,IF(is_post,'在职','离职') AS is_post_name
	FROM tb_staff
;

查询员工视图结果:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL语句之删除指令deleted和truncate在使用中的异同详解

    MySQL语句之删除指令deleted和truncate在使用中的异同详解

    这篇文章主要介绍了MySQL语句之删除指令deleted和truncate在使用中的异同,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • MySQL多版本并发控制mvcc原理浅析

    MySQL多版本并发控制mvcc原理浅析

    mvcc多版本并发控制是一种数据库的并发控制机制,本文主要介绍了MySQL多版本并发控制mvcc原理浅析,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • MySQL获取所有分类的前N条记录

    MySQL获取所有分类的前N条记录

    本文给大家分享的是使用mysql实现获取所有分类的前N条记录的方法,本文给出了3个示例,有需要的小伙伴可以参考下。
    2015-04-04
  • 4种MySQL数据同步ES方案详解

    4种MySQL数据同步ES方案详解

    这篇文章主要给大家分享介绍了关于4种MySQL数据同步ES方案的相关资料,MySQL是一种常用的关系型数据库,而Elasticsearch是一种为搜索和分析而设计的分布式全文搜索引擎,需要的朋友可以参考下
    2023-10-10
  • mysql索引失效的十大问题小结

    mysql索引失效的十大问题小结

    最近生产爆出一条慢sql,原因是用了or和!=,导致索引失效。于是,总结了索引失效的十大杂症,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Mybatis动态传入order by问题

    Mybatis动态传入order by问题

    这篇文章主要介绍了Mybatis动态传入order by问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • MySQL启动1053错误解决方法

    MySQL启动1053错误解决方法

    创建mysql服务时,系统已提示创建服务成功,但是net start命令提示启动失败,并在services.msc中提示1053错误
    2012-11-11
  • Linux连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决方法

    Linux连接mysql报错:Access denied for user ‘root’@‘localhost’(usi

    这篇文章主要给大家介绍了关于Linux连接mysql数据库报错:Access denied for user ’root‘@’localhost‘(using password: YES)的解决方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-01-01
  • 由不同的索引更新解决MySQL死锁套路

    由不同的索引更新解决MySQL死锁套路

    前几篇文章介绍了用源码的方式来调试锁相关的信息,这里同样用这个工具来解决一个线上实际的死锁案例,下面小编来简单介绍下
    2019-05-05
  • Mysql二进制安装与备份的全过程记录

    Mysql二进制安装与备份的全过程记录

    这篇文章主要给大家介绍了关于Mysql二进制安装与备份的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01

最新评论