首页 > 数据库 >MySQL IF CASE

MySQL IF CASE

时间:2022-08-14 22:44:28浏览次数:56  
标签:CASE gender WHEN expr1 user MySQL SELECT

IF函数

语法

如果 expr1 是TRUE,则 IF()的返回值为expr2; 否则返回值则为 expr3。

IF(expr1,expr2,expr3)

样例

-- 简单
SELECT 
  IF(t.gender = 0, '男', '女') SEX
FROM
  t_user t ;

-- 复杂
 SELECT 
  IF(t.gender = 0,
    (SELECT NAME FROM gender WHERE CODE = t.gender),
    IF(t.gender = 1, '女', '保密')
  ) SEX 
FROM
  t_user t ; 

IfNULL

语法

假如expr1 为 NULL,则 IFNULL() 的返回值为 expr2; 否则其返回值为 expr1。

IFNULL(expr1,expr2)

例子

SELECT 
  IFNULL(gender, '3') 
FROM
  t_user ;

CASE WHEN

语法1

CASE expression
  WHEN value1 THEN returnvalue1
  WHEN value2 THEN returnvalue2
  WHEN value3 THEN returnvalue3
  ……
  ELSE defaultreturnvalue
END

例子

SELECT 
  (CASE t.gender 
      WHEN 0 THEN '男' 
      WHEN 1 THEN '女' 
      ELSE '保密'
    END
  ) SEX
FROM
  t_user t ;

语法2

CASE
  WHEN condition1 THEN returnvalue1
  WHEN condition2 THEN returnvalue2
  WHEN condition3 THEN returnvalue3
  ……
  ELSE defaultreturnvalue
END

例子

SELECT 
  (CASE
      WHEN t.gender = 0 THEN '男' 
      WHEN t.gender = 1 THEN '女' 
      ELSE '保密'
    END
  ) SEX
FROM
  t_user t ;  

标签:CASE,gender,WHEN,expr1,user,MySQL,SELECT
From: https://www.cnblogs.com/saltish/p/16549898.html

相关文章

  • MySQL事务执行一半,连接被kill掉会怎样?
     官方文档解释: https://dev.mysql.com/doc/refman/8.0/en/kill.html优秀博客:https://cloud.tencent.com/developer/article/1815896         ......
  • MySQL基础
    今日内容数据存取演变史一、文本文件  文件路径不一致:C:\a.txtD:\aaa\b.txtE:\ccc.txt  数据格式不一致:jason|123tony$123kevin@123二、软件开发目录规范......
  • 周回顾并发编程与数据库08.14:UDP协议、操作系统发展史、相关名词、进程、线程、验证py
    目录UDP协议操作系统发展史相关名词进程线程锁信号量event事件池协程数据库MySQLSQL与NoSQL内容UDP协议Internet协议集支持一个无连接的传输协议,该协议......
  • 【2022.8.12】MySQL数据库(1)
    今日内容概要主体:数据库(入门核心)数据存取演变史数据库软件应用史数据库的本质数据库的分类MySQL数据库基本使用系统服务制作基本SQL语句今日内容详细数......
  • mysql 服务无法启动是什么原因?
    1、将目录中配置文件my.default.ini改名为my.ini移至bin目录下。2、启动命令行,将目录切换到mysql安装目录的bin目录下。3、在命令行执行命令:mysqld--initialize--user=......
  • 浅谈MySQL的sql_mode
    SQLmode今天我们来分享一下MySQL的SQLmode,这也是我们比较容易忽略的一点,我们在一开始安装数据库的时候其实就要先考虑要保留哪些SQLmode,去除哪些,合理的配置能够减少......
  • VS2010 + Mysql5.7 使用ADO.Net Entity Framework
        系统很LOW,不想花太多时间来升级,可想做点什么,总是这也不行那也不行,更种安装要不就是vs版本太低,要不不支持低版本的mysql,调试起来很费时。用老版办法写代码又太费......
  • 搞定面试官 - 你可以介绍一下在 MySQL 中,哪些情况下 索引会失效嘛?
    大家好,我是程序员啊粥,前边给大家分享了*MySQLInnoDB索引模型在MySQLInnoDB中,为什么delete删除数据之后表数据文件大小没有变如何计算一个索引的长度如何查看......
  • mysql部署
    二进制安装mysql下载二进制安装包mysql5.7https://dev.mysql.com/downloads/mysql/5.7.htmlmysql8.0https://dev.mysql.com/downloads/mysql/解压,移动至/usr/loc......
  • docker 启动mysql:5.7
    docker启动mysql容器报错commandwas:mysqld--verbose--help--log-bin-index=/tmp/tmp.9eG6SycqdRmysqld:Can'treaddirof'/etc/mysql/conf.d/'(Errcod......