SQL之条件判断语句

简介: Hive 查询语句之条件判断语句
  • image.png条件判断语句用于为查询字段的值添加判断条件,区别于when
  • 常用于动态分区


  • if
  • select
  •     if(condition,true_value,false_value)
  • from tb
  • 例:对男女人数分别进行计算,
  • 计算男的人数时,将性别男标记为数字1,女为数字0
  • 计算女的人数时,将性别女标记为数字1,男为数字0
  • 最终将数字累加
  • select dept_id,
  • sum(if(sex='',1,0)) [as] malenum,
  • sum(if(sex='',1,0)) [as] femalenum
  • from emp_sex group by dept_id;

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

  • 统计每个部门男女各多少人
  • 用group  by:
  • select  dept_id,sex,count(*)
  • from  emp_sex group by dept_id,sex;
  •  

 

================================================================

  • case when
  • select dept_id,
  • sum(case when sex='' then 1 else 0  end) [as] malenum,
  • sum(case when sex='' then 1 else 0  end)  [as] femalenum
  • from emp_sex group by dept_id;

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

  • select *,
  •    case
  •         when score >=80 then '优秀'
  •         when score >=60 and score <80 then '及格'
  •         when score >40 and score <60 then '不及格'
  •         else ''
  •         (when score <=40 then '')
  •    end [as] score_level
  • from stu_score
  •  
  •  

===================================================================

  • nvl
  • nvl(v1,v2) ,如果v1不为空,取v1,如果为空,取v2
  •  
  • 注Ⅰ:select  nvl(a.id,b.id) from a full join b on a.id=b.id  ;
  • <==> select nvl(b.id,a.id) from a full join b on a.id=b.id ;
  •  
  • 注Ⅱ:select nvl(a.name,b.name) from a full join b on a.id=b.id ;
  • <=/=> select nvl(b.name,a.name) from a full join b on a.id=b.id ;
  •  


===================================================================

  • coalesce
  • coalesce(v1,v2,v3,v4...) 返回第一个非null的值
  • 举例:
  • coalesce(100,null,200,null,120)  --> 100
  • coalesce(null,200,null,120)   --> 200
  • 常用:coalesce(字段)
目录
相关文章
|
SQL XML Oracle
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
503 0
Mybatis动态SQL语句查询,实现一个参数 可查询多个字段。
|
4月前
|
SQL 存储 Oracle
SQL中使用IF语句实现条件判断
SQL中使用IF语句实现条件判断
|
5月前
|
SQL Oracle 关系型数据库
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
71 0
|
SQL 存储 缓存
一文搞懂MySQL中一条SQL语句是如何执行的
一文搞懂MySQL中一条SQL语句是如何执行的
|
SQL 存储 关系型数据库
MySQL的第一篇文章——了解数据库、简单的SQL语句
MySQL的第一篇文章——了解数据库、简单的SQL语句
|
SQL Python
Pandas与SQL的数据操作语句对照
Pandas与SQL的数据操作语句对照
160 0
Pandas与SQL的数据操作语句对照
|
SQL 程序员 开发工具
【Sql Server】基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
531 0
【Sql Server】基础之分组查询重复出现多条记录的SQL语句,以及group by和having、min函数运用
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
SQL 查询表中每门课程成绩最好的前n名学生 优于group by语句的方法
|
SQL 数据库 数据安全/隐私保护
使用SQL语句 查询电话号码 加密显示
使用SQL语句 查询电话号码 加密显示
327 0
使用SQL语句 查询电话号码 加密显示
|
SQL 存储 安全
MYSQL数据库初窥门径, SQL语句地熟练使用, 图形化界面提高效率
MYSQL数据库初窥门径, SQL语句地熟练使用, 图形化界面提高效率
MYSQL数据库初窥门径, SQL语句地熟练使用, 图形化界面提高效率