美文网首页MySQL数据库mysql
Select进阶查询·流程控制函数

Select进阶查询·流程控制函数

作者: 技术老男孩 | 来源:发表于2023-01-24 09:03 被阅读0次

一、语法格式:

if语句 语法格式:

if(条件,v1,v2) 如果条件成立,则返回v1,否则返回v2

ifnull语句 语法格式:

ifnull(v1,v2) 如果v1不是空,则返回v1,否则返回v2
相当于如果v1为空,返回默认值的效果

case语句 语法格式 (可以有多个判断添加):

  • 如果字段名等于某个值
    则返回对应位置then后面的值 并结束判断
  • 如果与所有值都不相等
    则返回else后面的结果 并结束判断
语法格式1

CASE 表头名
WHEN 值1 THEN 结果
WHEN 值2 THEN 结果
WHEN 值3 THEN 结果
ELSE 结果
END

语法格式2

CASE
WHEN 判断条件 THEN 结果
WHEN 判断条件 THEN 结果
WHEN 判断条件 THEN 结果
ELSE 结果
END

二、使用案例:

  • if()语句
mysql> select  if(1 = 2 , "a","b");
+---------------------+
| if(1 = 2 , "a","b") |
+---------------------+
| b                   |
+---------------------+
1 row in set (0.00 sec)
  • ifnull()语句
# "abc"不为空 返回"abc"
 mysql> select  ifnull("abc","xxx");
+---------------------+
| ifnull("abc","xxx") |
+---------------------+
| abc                 |
+---------------------+
1 row in set (0.00 sec)

# null为空 返回"xxx"
mysql> select  ifnull(null,"xxx");
+--------------------+
| ifnull(null,"xxx") |
+--------------------+
| xxx                |
+--------------------+
1 row in set (0.00 sec)
  • case语句 语法1
# 输出部门类型
select dept_id, dept_name,
case dept_name
when '运维部' then '技术部门'
when '开发部' then '技术部门'
when '测试部' then '技术部门'
else '非技术部门'
end as  部门类型   from  tarena.departments;
+---------+-----------+--------------+
| dept_id | dept_name | 部门类型     |
+---------+-----------+--------------+
|       1 | 人事部    | 非技术部     |
|       2 | 财务部    | 非技术部     |
|       3 | 运维部    | 技术部       |
|       4 | 开发部    | 技术部       |
|       5 | 测试部    | 技术部       |
|       6 | 市场部    | 非技术部     |
|       7 | 销售部    | 非技术部     |
|       8 | 法务部    | 非技术部     |
  • case语句 语法2
# 输出部门类型
mysql> select dept_id,dept_name,
    -> case
    -> when dept_name in ("运维部","开发部","测试部") then "技术部"
    -> else "非技术部"
    -> end as 部门类型  from  tarena.departments;
+---------+-----------+--------------+
| dept_id | dept_name | 部门类型     |
+---------+-----------+--------------+
|       1 | 人事部    | 非技术部     |
|       2 | 财务部    | 非技术部     |
|       3 | 运维部    | 技术部       |
|       4 | 开发部    | 技术部       |
|       5 | 测试部    | 技术部       |
|       6 | 市场部    | 非技术部     |
|       7 | 销售部    | 非技术部     |
|       8 | 法务部    | 非技术部     |

相关文章

  • Select进阶查询·流程控制函数

    一、语法格式: if语句 语法格式:if(条件,v1,v2) 如果条件成立,则返回v1,否则返回v2 ifnu...

  • sql笔记 P49-86

    #五、流程控制函数 #1. if函数:if else 的函数 SELECT IF(10 > 5, '大', '小'...

  • Select进阶查询·常用函数

    一、MySql中函数定义: 函数就是MySQL服务内置的命令 函数的格式:函数名() 通常使用的方法=>函数名(表...

  • SQL第2/n篇(持续更新中)从基础到进阶

    进阶5 分组查询 1、语法:select 分组函数,列(要求出现在group by后面)from 表where 条...

  • sqlP39-P48

    #进阶3:排序查询 /* #引入 SELECT * FROM employees 语法:执行顺序 select 查...

  • 4.SELECT语句

    SELECT eg 多表查询 流程图

  • mysql排序查询

    进阶3:排序查询 /*语法:select 查询列表from 表名【where 筛选条件】order by 排序的...

  • mysql分组查询

    进阶5:分组查询 /*语法: select 查询列表from 表【where 筛选条件】group by 分组的字...

  • MySQL 比较运算符,查询语句

    查询的基本语法 select * from 表名; trim函数查询时将空格去除 select nam...

  • 查询DQL

    进阶1:基础查询 /*语法:select 查询列表 from 表名; 类似于:System.out.println...

网友评论

    本文标题:Select进阶查询·流程控制函数

    本文链接:https://www.haomeiwen.com/subject/sdlucdtx.html