select case when语句

2023-11-15

今天看见一公司的数据库面试题,其中有道一开始没想起怎么做,后来摸索了下终于做出来了。

题目是:两个表联合查询,当表2的记录在表A里没有时,将其设置为0.

mysql> select * from t1;
+----+------+
| id | name |
+----+------+
|  1 | bbs  |
|  2 | bb   |
|  3 | cc   |
+----+------+
3 rows in set (0.01 sec)

mysql> select * from t2;
+----+------+
| id | name |
+----+------+
|  1 | aa   |
|  2 | bb   |
+----+------+
2 rows in set (0.00 sec)

mysql> select t1.name as name1,t2.name as name2 from t1 left join t2 on t1.id=t2.id;                                        
+-------+-------+
| name1 | name2 |
+-------+-------+
| bbs   | aa    |
| bb    | bb    |
| cc    | NULL  |
+-------+-------+
3 rows in set (0.00 sec)

将NULL变为0

 

第一种写法:

mysql> select t1.name as name1,if(t2.name is NULL,0,t2.name) as name2 from t1 left join t2 on t1.id=t2.id;                        
+-------+-------+
| name1 | name2 |
+-------+-------+
| bbs   | aa    |
| bb    | bb    |
| cc    | 0     |
+-------+-------+
3 rows in set (0.00 sec)

 

第二种写法:

mysql> select t1.name as name1,(case when t2.name is NULL then '0' else t2.name end) as name2 from t1 left join t2 on t1.id=t2.id;  
+-------+-------+
| name1 | name2 |
+-------+-------+
| bbs   | aa    |
| bb    | bb    |
| cc    | 0     |
+-------+-------+
3 rows in set (0.00 sec)

 

参考:

http://apps.hi.baidu.com/share/detail/22393623

 

转载于:https://blog.51cto.com/liang3391/815271

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

select case when语句 的相关文章

随机推荐

  • 如何把笔记本做台式机的副屏(一套键鼠控制两台电脑)

    通过一套键鼠控制两台电脑 前提 安装所需的软件 一 简介 二 安装 2 1 小技巧 前提 两台电脑在同一个局域网内 并且均为windows操作系统 例如两台电脑链接的同一个WIFI 或者笔记本无线连接路由 台式机插网线链接路由 只有在同一个
  • 史上最全排序算法全面总结

    考察点 在信息学奥赛初赛中对于排序算法的考察主要体现在以下几方面 1 时间复杂度 2 稳定性 3 最坏情况下移动次数 4 移动次数与关键字顺序关系 先看熟记知识点 1 关于稳定性 假定在待排序的记录序列中 存在多个具有相同的关键字的记录 若
  • 指针空间的申请和释放

    http blog csdn net netanimals article details 6530787
  • 若依跨域解决

    发现接口取消权限校验之后 跨域调用还是失败了 若依本身有跨域配置 注释掉换为新的 若依原跨域配置 ResourcesConfig 中 跨域配置 Bean public CorsFilter corsFilter CorsConfigurat
  • matlab中常用符号

    在使用MATLAB的过程中 经常需要对输出图形中的变量进行标注 其中经常遇到的难题就是如何标注各种上标 下标 斜体 黑体 箭头 上圆圈 正负号等特殊符号 以及如何标注特殊的数学符号 这里第一机电网给大家总结一下 希望对大家有用 一 MATL
  • 奥林巴斯新微单E-M5II曝光:合金机身可防水

    通常单反相机是专业摄影师的最佳工具 但是对于普通消费者来说 既要拥有专业的图像质量 又不想负担单反相机沉重的质量 就成为了基本的要求 因此 微单相机就在这种情况下应运而生 如果你还没决定好选择哪一款微单 那么奥林巴斯即将推出的这款OM D
  • Android APP性能及专项测试

    Android篇 1 性能测试 Android性能测试分为两类 1 一类为rom版本 系统 的性能测试 2 一类为应用app的性能测试 Android的app性能测试包括的测试项比如 1 资源消耗 2 内存泄露 3 电量功耗 4 耗时 5
  • 【C++ 进阶】继承

    一 继承的定义格式 基类又叫父类 派生类又叫子类 二 继承方式 继承方式分为三种 1 public继承 2 protected继承 3 private继承 基类成员与继承方式的关系共有9种 见下表 虽然说是有9种 但其实最常用的还是红框里的
  • 随心所欲Do whatever you want——Minecraft

    Minecraft是一款沙盒类电子游戏 开创者是马库斯 阿列克谢 泊松 由微软旗下Mojang Studios维护 从2017年开始 中国版 我的世界 由网易游戏代理 目标 Minecraft着重于让玩家去探索 交互 并且改变一个由一立方米
  • Github使用学习笔记(二)

    第二节任务 如何把我在本地上的工程上传到github上已经建好的仓库中 一 在本地目录下创建我的版本库 mkdir learngit cd learngit git init ls ah 首先创建一个空目录 目录名为learngit 之后进
  • 【华为OD】

    目录 一 题目描述 二 输入描述 三 输出描述 备注 用例 四 题目解析 五 Java玩法 六 JavaScript玩法 一 题目描述 一个图像有 n 个像素点 存储在一个长度为 n 的数组 img 里 每个像素点的取值范围 0 255 的
  • 网站流量统计

    常使用web服务器的朋友大都了解 一般的web server有两部分日志 一是运行中的日志 它主要记录运行的一些信息 尤其是一些异常错误日志信息 二是访问日志信息 它记录的访问的时间 IP 访问的资料等相关信息 现在我来和大家介绍一下利用t
  • 高级定时器 tim1 tim8 一般中断配置,以防以后忘记

    void Timer8 Init void TIM TimeBaseInitTypeDef TIM TimeBaseStructure NVIC InitTypeDef NVIC InitStructure RCC APB2PeriphCl
  • C++设计模式——单例模式 (一)

    单例模式 一个类只能创建一个对象 单例模式是C 中常用的一种设计模式 熟悉Qt的朋友肯定清楚QApplication实际也是采用的单例模式 并且为用户提供了一个全局的指针对象 qApp 我们先看看Qt中对于单例的实现 define qApp
  • Android NDK是什么

    官方给出的答案 Android NDK 是一套允许您使用原生代码语言 例如 C 和 C 实现部分应用的工具集 在开发某些类型应用时 这有助于您重复使用以这些语言编写的代码库 深入的学习 https developer android goo
  • 13 款炫酷的 MySQL 可视化管理工具!好用到爆!!

    MySQL 的管理维护工具非常多 除了系统自带的命令行管理工具之外 还有许多其他的图形化管理工具 工具好用是一方面 个人的使用习惯也很重要 这里介绍 13 款 MySQL 图形化管理工具 供大家参考 1 DBeaver DBeaver 是一
  • 分数运算(类+构造)

    题目描述 用C 定义和实现一个分数类 并根据要求完成分数对象的运用 分数类包含分子和分母两个属性 操作包括 各属性的get方法 构造函数 初始化分子分母 相加运算 该运算接收两个分数对象的分子和分母 然后进行分数相加 结果保存在自己的分子和
  • 利用 ViewBinding 和反射封装的基类,从此再也不用 findViewById 了

    code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群 作者 段颖超丨乐拼链接 https www jianshu com p ea395a83c666声明 本文已获段颖超丨乐拼授权发表 转发等请联系原作者授权 今
  • 计算机图形学入门(一)-线性代数部分知识1

    本部分主要介绍了向量的点乘与叉乘在图形学中的基本应用 介绍了图形学中常用的2D矩阵变换 例如缩放 对称 切变换 旋转 平移 逆变换 组合变换和分解变换 还有在图形学中为了简化操作而采取的添加维度的方法 主要的学习过程来自下面的视频 本文只会
  • select case when语句

    今天看见一公司的数据库面试题 其中有道一开始没想起怎么做 后来摸索了下终于做出来了 题目是 两个表联合查询 当表2的记录在表A里没有时 将其设置为0 mysql gt select from t1 id name 1 bbs 2 bb 3