【Mysql】日期、行变列(IF、CASE WHEN THEN)语句总结

2023-11-15

  1. 获取昨天的日期
    日期相减函数 datediff
select datediff(curdate(),INTERVAL 1 DAY) ;
  1. 删除Person表中重复的Email数据,只保留id最小的一条
delete p1 from Person p1,Person p2 where p1.Email = p2.Email and p1.Id > p2.Id;
  1. 换座位,1与2换,3与4换,5保留原来的
    COALESCE空值表达式,第一个不为空,返回第一个结束;否则继续判断接下来的数据;
select id, COALESCE(s2.student,s1.student) from seat s1, LEFT JOIN
    seat s2 ON ((s1.id + 1) ^ 1) - 1 = s2.id
ORDER BY s1.id;
  1. 交换性别,‘f’ 变 ‘m’, ‘m’ 变 ‘f’
update salary set sex= 
   case sex when 'f' then 'm' 
       else 'f'
       END;
  1. 月份列变行,求总和,并汇总
    if(month=‘Jan’,revenue,null) Jan_Revenue
    case month when ‘Jan’ then revenue END Jan_Revenue
select id,
sum(if(month='Jan',revenue,null)) Jan_Revenue,
sum(if(month='Feb',revenue,null)) Feb_Revenue,
sum(if(month='Mar',revenue,null)) Mar_Revenue,
sum(if(month='Apr',revenue,null)) Apr_Revenue,
sum(if(month='May',revenue,null)) May_Revenue,
sum(if(month='Jun',revenue,null)) Jun_Revenue,
sum(if(month='Jul',revenue,null)) Jul_Revenue,
sum(if(month='Aug',revenue,null)) Aug_Revenue,
sum(if(month='Sep',revenue,null)) Sep_Revenue,
sum(if(month='Oct',revenue,null)) Oct_Revenue,
sum(if(month='Nov',revenue,null)) Nov_Revenue,
sum(if(month='Dec',revenue,null)) Dec_Revenue from Department group by id;

select id,
sum(case month when 'Jan' then revenue END) Jan_Revenue,
sum(case month when 'Feb' then revenue END) Feb_Revenue,
sum(case month when 'Mar' then revenue END) Mar_Revenue,
sum(if(month='Apr',revenue,null)) Apr_Revenue,
sum(if(month='May',revenue,null)) May_Revenue,
sum(if(month='Jun',revenue,null)) Jun_Revenue,
sum(if(month='Jul',revenue,null)) Jul_Revenue,
sum(if(month='Aug',revenue,null)) Aug_Revenue,
sum(if(month='Sep',revenue,null)) Sep_Revenue,
sum(if(month='Oct',revenue,null)) Oct_Revenue,
sum(if(month='Nov',revenue,null)) Nov_Revenue,
sum(if(month='Dec',revenue,null)) Dec_Revenue from Department group by id;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Mysql】日期、行变列(IF、CASE WHEN THEN)语句总结 的相关文章

  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • 如何从shell脚本自动登录MySQL?

    我有一个 MySQL 服务器 其中有一个用户和密码 我想在 shell 脚本中执行一些 SQL 查询而不指定密码 如下所示 config sh MYSQL ROOT root MYSQL PASS password mysql sh sou
  • SQL不允许表中有重复记录

    如何使其不添加重复项 我想让它通过 ID 之外的所有其他列进行检查 我希望这个无效 ID col1 col2 col3 1 first middle last ID col1 col2 col3 2 first middle last 我希
  • 从按日期时间排序的 MySQL 表中获取用户的最后一个条目

    我有一张看起来像这样的桌子 USERNAME DATA DATETIME Jhon text1 2010 06 01 16 29 43 Mike text2 2010 06 01 16 29 22 Silver text3 2010 05
  • 仅当值发生更改时如何插入数据库?

    我需要更新 替换 MySQL 数据库中的字段 但前提是它们已更改 该表包含 ID 文本字段和更改日期 用户根据更改日期通过 ID 查询数据 即 如果该日期早于用户上次查询数据的时间 则他不想要它 仅当文本字段与具有相同 ID 的现有文本字段
  • Galera 集群问题

    我想在我们的生产环境中使用Galera集群 但我有一些顾虑 每个表必须至少定义一个显式主键 每个表必须运行在InnoDB或XtraDB存储引擎下 分批处理您的大额交易 例如 不要让一个事务插入 100 000 行 而是将其分成更小的块 例如
  • 连接 Netbeans 和 MySQL 但出现大整数错误

    所以我正在尝试向我的 Netbeans 数据库 即 MySQL 添加新连接 但我遇到了大整数转换错误 有人可以帮助我吗 详细地 我右键单击现有的MySQL 服务器位于 localhost 3306 root 已断开连接 gt gt 选择co
  • 如何优化这个MySQL慢(非常慢)查询?

    我有一个 2 GB 的 mysql 表 包含 500k 行 我在没有负载的系统上运行以下查询 select from mytable where name in n1 n2 n3 n4 bunch more order by salary
  • MySql 5.7 ORDER BY 子句不在 GROUP BY 子句中并且包含非聚合列

    我试图在不禁用 my ini 中的 only full group by 的情况下弄清楚 这是我的查询 SELECT p title COUNT t qty AS total FROM payments t LEFT JOIN produc
  • 即使没有结果也返回一个值

    我有这种简单的查询 它返回给定 id 的非空整数字段 SELECT field1 FROM table WHERE id 123 LIMIT 1 问题是如果找不到 id 结果集就是空的 我需要查询始终返回一个值 即使没有结果 我有这个东西工
  • 不带 GROUP BY 的聚合查询

    这个查询似乎在我的旧机器上完美运行 但是 在我的 MySQL 5 7 14 和 PHP 5 6 25 的新机器上 它会抛出错误 致命错误 未捕获异常 PDOException 并带有消息 SQLSTATE 42000 语法错误或访问冲突 1
  • libmysqlclient.a 和 libmysqlclient_r.a 有什么区别?

    我应该使用哪个来链接 mysqlclient 库 它们之间有什么区别 我似乎找不到答案 谢谢 较新版本的 MySQL 客户端发行版不包含 r 版本 有些可能有从 libmyqslclient r a 到 libmyqslclient a 的
  • MySQL 排序顺序 - 排序规则?

    我在对 MySQL 中的 char 字段进行排序时遇到困难 问题是重音字符与非重音字符混淆 例如 Abc bd Acc 我认为这可能与整理有关 所以我将表格的排序规则更改为utf8 ut8 bin 看完之后这个帖子 https stacko
  • mysql 中的二进制、十六进制和八进制值

    我对在 mysql 数据库中使用二进制 十六进制和八进制系统非常感兴趣 首先 请给我一个建议 为什么我们在存储信息时需要它们 因为信息太多 或者为什么 另外 哪种类型的值必须存储在标记系统中 另外这里还有像 这是例子 gt SELECT 5
  • 如何从批量数据中的mysql列中删除所有非数字字符

    我想从列中删除所有非数字字符 我的数据库中有大量数据 目前我正在使用以下链接中描述的方法 http venerableagents wordpress com 2011 01 29 mysql numeric functions http
  • 如何在MYSQL中将整个字符串小写并保持第一个大写[重复]

    这个问题在这里已经有答案了 我的表栏目 我预期的输出会在列中发生变化 Smith Allen Doyle Dennis Baker Waker 这是我尝试过的 但不起作用 UPDATE TABLE employee SET last nam
  • 在 SQL 中,如何从 SELECT * FROM ... 中排除结果?

    我知道我的标题不太具有描述性 让我在这里详细解释一下 假设一个表有 26 个字段 例如字段 a 字段 z 我只想要一个选择查询只返回 15 个字段 所以 通常 我会执行 SELECT field a field b field o FROM
  • 如何检测Mysql/innodb中的死锁?

    我知道在 Innodb 中使用事务时不可避免地会发生死锁 并且如果应用程序代码正确处理死锁 它们是无害的 正如手册所说 只需再试一次 所以我想知道 如何检测死锁 死锁是否会发出一些特殊的 mysql 错误号 如果重要的话 我正在使用 PHP
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • mysql排序和排名语句

    我需要一些 mysql 语句的帮助 我的表 1 有 7 列 表 2 有 8 列 额外的列名为排名 我的语句应该是这样的 从表 1 中选择全部 然后按 用户数 排序 将其插入表 2 中并排名开始 1 2 3 等 table 1 usernam

随机推荐

  • Linux面试题

    1 解释下什么是GPL GNU 自由软件 GPL 通用公共许可证 一种授权 任何人有权取得 修改 重新发布自由软件的权力 GNU 革奴计划 目标是创建一套完全自由 开放的的操作系统 自由软件 是一种可以不受限制地自由使用 复制 研究 修改和
  • matlab elmtrain,ELM代码matlab

    Elmtrain m 训练代码 function IW B LW TF TYPE elmtrain P T N TF TYPE ELMTRAIN Create and Train a Extreme Learning Machine Syn
  • 电脑如何快速截屏技巧 四种常见的电脑截图方法

    经常使用电脑的朋友肯定会经常用到截屏这一功能 那么怎样快速的将电脑桌面上的信息通过截屏保存下来呢 其实截屏的方法有很多种 小编在这里与大家一起分享下四种常见的电脑截图方法 一 Windows系统自带的截图工具 一般的Windows系统都自带
  • git初识

    目录 简介 基本操作 常用命令 简介 Git是一种分布式版本控制系统 用于跟踪文件的更改并协调多个人之间的工作 它最初由Linus Torvalds于2005年创建 现在已成为许多开源和商业项目的首选版本控制系统 Git的主要特点包括分支和
  • Bringing HLSL Ray Tracing to Vulkan

    This post was revised March 2020 to reflect newly added support in DXC for targeting the SPV KHR ray tracing multi vendo
  • Mybatis的逆向工程详解

    今天用mybatis的逆向工程生成mapper xml文件的时候 由于用到的第三方可视化数据库工具的不支持 里面生成的xml文件中缺少了对主键的操作 于是上网查了别人的工程 对照了一下自己把mapper xml补齐了 下面贴出网上别人写得好
  • Transport Client 与 Node Client 官网谈差别

    通过使用elasticsearch 5 x版本 由于是追着潮流 所以遇到了很多疑惑和坑 接下来我们来看一下我一开始用5 x出现两个client 时关于两者区别的疑惑 Transport Client 与 Node Client 如果你使用的
  • 单列集合系列之Set集合的初了解

    Welcome Huihui s Code World 接下来看看由辉辉所写的关于单列集合的相关操作吧 目录 Welcome Huihui s Code World 顶级接口Collection 概念 方法 共性通用 一 Set集合的特点
  • [附源码]JSP+ssm计算机毕业设计彩虹社区残障人士管理信息系统的设计与实现ed5nd【源码、数据库、LW、部署】

    项目运行 项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEcl
  • Vue源码之AST抽象语法树

    Vue源码之AST抽象语法树 AST抽象语法树全称Abstract Sybtax Tree 简称就是AST 其作用就是Vue在解析模板时 会把模板编译成抽象语法树 在进行diff最小量更新算法等 AST抽象语法树是Vue渲染引擎的第一道工序
  • 写给小白的android 事件分发机制

    介绍 当我们手指在屏幕上进行操作时 系统根据我们的操作进行反应 系统为了更好的记录我们的操作 将我们的手指的所有操作分为三类操作 统一封装在MotionEvent类中 把大象装进冰箱只要三部 1 打开冰箱 2 把大象扔进去 3 关闭冰箱 操
  • Windows7之天镜漏洞扫描工具安装

    01 天镜漏洞扫描工具安装 01 安装天镜 02 升级漏洞 03 重启win7 多次重复升级过程 1次可能没办法成功 04 成功之后查看版本
  • Java8 Stream Lambda sorted()之正序倒序

    下面代码以自然序排序一个list list stream sorted 自然序逆序元素 使用Comparator 提供的reverseOrder 方法 list stream sorted Comparator reverseOrder 使
  • 解决zipfile压缩的文件路径太深,直接调用即可

    import os import zipfile import shutil def zipDir dirpath outdir 把路径中最后一个文件夹的名字取出来作为雅苏报的名字 zip path dirpath split 1 prin
  • unix命令

    一 查看机器上是否还有java线程 ps ef grep java 二 查看和清理机器文件 1 查看机器磁盘总空间以及剩余空间大小 root localhost df h 2 查看当前目录使用的总空间大小 root localhost ho
  • 入职1024天,写于万般困顿之时

    最近攻关一个项目到杭州出差 预计还要十多天才能回去 每天在小黑屋里加班到很晚 外加大领导很凶 双重压力之下累的喘不上来气 猛然发现自己已经入职整整1024天了 照照镜子也没入职前那么意气风发了 今天还是太晚了 明天还要早起 留个档占个位置
  • Python---正则表达式

    专栏 python 个人主页 HaiFan 专栏简介 Python在学 希望能够得到各位的支持 正则表达式 前言 概念 作用和特点 使用场景 正则符号 re模块 re compile match search span findall gr
  • Python中pip安装与使用

    一 Pip的安装方法 1 在Windows中的安装方法 操作环境 Windows10 Python3 7 其实你在安装python的时候 pip就随同一起安装了 一般情况下 可以直接使用 如果不能使用 基本上就是没有添加环境变量而已 添加下
  • 性能监控诊断,cpu,I/O,内存,网络诊断

    1 内存 cpu 网络 磁盘 2 当系统出现问题时 我们需要从应用程序 操作系统 服务器设备 网络环节系统资源等多方面综合排查 定位分析问题 然后集中解决问题 3 响应时间 服务器响应时间 网络时间 4 总体来说 系统提供了比较多的有用信息
  • 【Mysql】日期、行变列(IF、CASE WHEN THEN)语句总结

    获取昨天的日期 日期相减函数 datediff select datediff curdate INTERVAL 1 DAY 删除Person表中重复的Email数据 只保留id最小的一条 delete p1 from Person p1