sql case when 中添加多个条件

sql case when 中添加多个条件,第1张

概述

        想必大家已经在工作中很常用到case when 了,这也是必备的。SQL可以给我们带来很多的便利。

问题

简单示例

CASE sex

WHEN '1' THEN '男'

WHEN '2' THEN '女'

ELSE '其他' EN

     

CASE WHEN sex = '1' THEN '男' 

WHEN sex = '2' THEN '女' 

         业务需要面对一个问题,case when 时,不光sex = ‘2’ 还要判断name = hello 然后返回 ‘女’,该怎么处理呢,现实中我就面对了这么一个问题,因为引号的问题卡克了,然后问了老司机,他说case 怎么还可以能添加多个条件呢。

        我一度要放弃,但是如果这个SQL不能实现,我的Java代码里面需要把结果List便利循环,更可能要每一遍都要查询一次数据库,这效率是非常低效的。

尝试   

        一看要添加许多代码,我又进行了尝试,我认为SQL功能齐全,不应该这么简单的功能没有。

第一次尝试

相信第一次的思路是如下的解法:

CASE WHEN sex = '1' THEN '男' 

WHEN sex = '2' and name = "hello"  THEN '女' 

然后报错,继续尝试第二次

CASE WHEN sex = '1' THEN '男' 

WHEN sex = '2' && name = "hello"  THEN '女' 

然后尝试第三次

CASE WHEN sex = '1' THEN '男' 

WHEN sex = '2' and name = 'hello'  THEN '女' 

这次尝试成功

答疑解惑

 1. 为什么要用 双引号呢?

我以为这个是常量需要双引号,根本原因是没有了解到数据库双引号和单引号的区别,新增又加深了,双引号 一般作为 as 之后的别名使用 ,像Pgsql,别名的helloWorld 如果不用 双引号,那么显示的是helloworld

2. 学习知识

解决了问题自己还是很开心,使代码更加优化,更加的满意。很多的时候我们要相信自己,多花一些时间进行尝试,会得到良好的结果,相信我们自己。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/991674.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存