SQL语句中,如何使用含有if....else...判断语句

简介: SQL语句中,如何使用含有if....else...判断语句

在我们开发中,有时要对数据库中的数据按照条件进行查询,用到if else类似的语句进行判断,那么if else语句只有在存储过程,触发器之类的才有,但是要在sql上当满足某种条件上要取不同的字段值,刚开始我还不会,最后查了资料,发现使用case when语句就可以解决,而且各种数据库都支持。


语法:

case when 条件1 then 结果1 when 条件2 then 结果2 else 结果N end


可以有任意多个条件,如果没有默认的结果,最后的else也可以不写,


select case when col1 > 1 then col2 else col3 end from XXXtable


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------


一、[基本查询语句展示优化]

Sql代码

  1. #根据type查询  
  2. SELECT id,title,type FROM table WHERE type=1;  
  3. SELECT id,title,type FROM table WHERE type=2;  

用if优化Sql代码

1.#if(expr,true,false)  

2.SELECT id,title,type,if(type=1,1,0) as type1,if(type=2,1,0) as type2 FROM table;  

3.SELECT id,title,type,if(type=1,1,0) as type1,if(type=2,1,0) as type2 FROM table;  


用case when优化Sql代码


1#case...when...then...when...then...else...end  

2.SELECT id,title,type,case type WHEN 1 THEN 'type1' WHEN 2 THEN 'type2' ELSE 'type error' END as newType FROM table;  


二、[统计数据性能优化]

Sql代码

  1. #两次查询不同条件下的数量  
  2. SELECT count(id) AS size FROM table WHERE type=1  
  3. SELECT count(id) AS size FROM table WHERE type=2  

用if优化Sql代码

  1. #sum方法  
  2. SELECT sum(if(type=1, 1, 0)) as type1, sum(if(type=2, 1, 0)) as type2 FROM table  
  3. #count方法  
  4. SELECT count(if(type=1, 1, NULL)) as type1, count(if(type=2, 1, NULL)) as type2 FROM table  
  5. #亲测二者的时间差不多  
  6. #建议用sum,因为一不注意,count就会统计了if的false中的0  

用case when优化Sql代码

  1. #sum  
  2. SELECT sum(case type WHEN 1 THEN 1 ELSE 0 END) as type1, sum(case type WHEN 2 THEN 1 ELSE 0 END) as type2 FROM table  
  3. #count  
  4. SELECT count(case type WHEN 1 THEN 1 ELSE NULL END) as type1, count(case type WHEN 2 THEN 1 ELSE NULL END) as type2 FROM table  

目录
相关文章
|
3月前
|
SQL 监控 数据库
SQL语句是否都需要解析及其相关技巧和方法
在数据库管理中,SQL(结构化查询语言)语句的使用无处不在,它们负责数据的查询、插入、更新和删除等操作
|
3月前
|
SQL 存储 数据库
SQL语句是否都需要解析及其相关技巧与方法
在数据库管理系统中,SQL(Structured Query Language)语句作为与数据库交互的桥梁,其执行过程往往涉及到一个或多个解析阶段
|
3月前
|
SQL 数据可视化 BI
SQL语句及查询结果解析:技巧与方法
在数据库管理和数据分析中,SQL语句扮演着至关重要的角色
|
SQL 算法
SQL语句的不常用方法记录
SQL语句的不常用方法记录
83 0
|
SQL 数据库
|
SQL 关系型数据库 MySQL
SQL语句优化方法
SQL语句优化方法
180 0
|
SQL 索引
说说对SQL语句优化有哪些方法?
说说对SQL语句优化有哪些方法?
117 0
|
SQL 数据库 Windows
常用的SQL语句语法总结
sql语句、sql语法、基于sql语句的一些常用语法积累总结。
523 0
|
SQL 存储 关系型数据库
一条SQL更新语句是如何执行的?
大家好前面我们大概了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。那么,一条更新语句的执行流程又是怎样的呢?
一条SQL更新语句是如何执行的?