case when
select name,age, case when(age>60) then '老同学' when(20<age<=60) then '年轻' when(age<=20) then '小同学' else '小同学' end age_level from student order by name desc
当年龄为18时 输出是年轻 为什么? 整体SQL执行流程是什么?
9
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小尤
2023-08-09 09:51:29
同学你好 ,1、根据查询到数据在case...when....else中进行判断,case...when....else用于选择判断,只返回第一个符合条件的值,并是从上往下进行执行。当符合条件时就结束判断。
2、当年龄为18时 输出是年轻 是因 when(20<age<=60) then '年轻' 语句,此时在解析时when(20<age<=60) 解析为or(或)所以当age小于60的都会输出年轻。此时同学可以调整SQL为and(与)when(20<age and age<=60)
select name,age, case when(age>60) then '老同学' when(20<age and age<=60) then '年轻' when(age<=20) then '小同学' else '小同学' end age_level from student order by name desc
祝学习愉快!
Java工程师 2024版
- 参与学习 2020 人
- 提交作业 1249 份
- 解答问题 1203 个
2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星