前言:
此时朋友们对“java case函数”可能比较讲究,同学们都想要分析一些“java case函数”的相关文章。那么小编也在网上汇集了一些有关“java case函数””的相关知识,希望你们能喜欢,兄弟们一起来学习一下吧!Sql中case函数的2种用法:
case函数一般用来做结果集字段的替换,生成一个新列,相当于switch...case or if begin ...end else begin....end等 。
1.简单case函数
语法:
--Simple CASE expression: CASE input_expression WHEN when_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END
中文格式:
--简单的case函数case when 条件表达式1 then 结果1 when 条件表达式2 then 结果2 ...... when 条件表达式n then 结果nelse 结果n+1end as '列名'
例如:
Select Id ,Name ,Gender case Classid when 1 then '023班'when 2 then '024班'when 3 then '025班’else '非本专业'end as '班级'from Teacher2.搜索case函数
语法:
--Searched CASE expression: CASE WHEN Boolean_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END
中文格式:
--搜索case函数:case when 判断表达式1 Then 结果1 when 判断表达式2 Then 结果2 ..... when 判断表达式n Then 结果nelse 结果n+1end as '列名'
例如:
select Id, Name ,Gender ,Age case when Age <18 then '少年' when Age >20 then '青年' when Age is null then '不晓得' when Gender = True then '男’else '青少年'end as '学生类型'from Teacher
注意:相当于if ...else 判断函数,但是不能判断NULL值,case函数常用于分组统计。
2种子查询(subquery)
查询一般是指select 语句,子查询简单来说就是嵌套在查询语句中作为查询条件查询语句。
子查询步骤:
1.将检索或者查询的问题进行解析,将其分开成按逻辑排列的单句查询
2.大家查询构架。
3.运用关键词对查询构架进行填充单句子查询。
1.独立子查询:
第一类:单行子查询,
where条件子句子查询,一般跟在(=、!=、<、<=、>、>=)之后。
select * from Teacher where Age >(select Age from Teacher where Name = 'cc')
分析:先子句再父句(剥皮法)
1.子句:查询出表Teacher中,名字为cc的老师的年龄。
2.父句:检索出表Teacher中,年龄大于cc老师年龄的老师的名单详细信息。
第二类:多行子查询,
in or not in(多结果集)子查询,返回多个值。还有(all、any、函数min,max等)
select * from Teacher where Age,Gender in (select Age from Teacher where Name = 'cc')
注:in or not in常用于测试一个给定的比较值有没有出现在一个特定的结果集中。
第三类:关联子查询,
exists or not exists条件子句子查询
if exists (select * from sysdatabases where name = 'TestSchool')drop database TestSchool
注:exists 检测查询数据是否存在 。
2.相关子查询:
相关子查询依赖于外部查询,子查询引用了父查询的相关结果集。
第一类:作为结果集
select * from (select * from Teacher where Classid = 2) temp where Gender = True
第二类:作为列的值
select (select Name from newTeacher where newTeacher.Name =Teacher.Name) Salary from Teacher
注:相关子查询的效率相对较低, 子查询的性能完全依赖于查询和有关的数据。
子查询语句一般不宜过多:子查询为嵌套查询,嵌套过多,越复杂,可读性就越差。子查询使用过多,会严重消耗性能。子查询使用不利于sql语句的调试,问题的排查。查询的一般方法:
1.表联合(union、join):合并多个数据集中的行.
2.子查询(subquery):将一个查询嵌套在另一个查询中.
3.表连接(inner join):合并多个数据表中的列.
标签: #java case函数