SQL学习之条件函数----IF、CASE语句

@SQLSQL

IF条件函数

分为IF函数嵌套和IF+聚合函数两类,主要是用来根据条件返回不同值。

1、if语句表达式

IF(条件表达式,1,2)
  • 如果条件表达式为True,返回值1,为False,返回值2。
  • 返回值可以是任何值,比如:数值,文本,日期,空值,NULL,数学表达式,函数等。
SELECT IF(TRUE,1+1,1+2);
-> 2
 
SELECT IF(FALSE,1+1,1+2);
-> 3

实例

1、实例1:查找出售价为 50 的书,如果是 java 书的话,就要标注为 已售完

select *,
if(book_name='java','已卖完','有货') as product_status 
from book 
where price =50

2、实例2:在学生表中,将1995年以后出生的学生划分为2班,将1995年(包括1995)之前的学生划分为1班,最后显示Sname,Sage,所在班级这三列。

select 
Sname as '学生姓名',
Sage as '学生年龄',
IF(YEAR(Sage)<=1995,'1班','2班') as '所在班级'
from students 
ORDER BY Sage; 

在这里插入图片描述

2、IF函数嵌套

  • 当分类大于两种或者以上时,就可以使用IF函数嵌套。
    实例2:在学生表中,将学生编号小于等于3的学生,分为1班,学生编号在4-6的学生,分为2班,学生编号大于等于7的学生,分为3班,最后显示Sid,Sname,所在班级这三列。
select 
Sid as '学生编号',
Sname as '学生姓名',
IF(
	Sid <= 3,'1班',
	IF(Sid >= 7,'3班','2班')
	) as '所在班级'
from students
order by Sid

IF + 聚合函数

IF 还经常与聚合函数一起结合使用
实例3:将学生表和教师结合使用,计算班主任所带的学生数量,大于等于5人以上的显示:5人以上,人数小于5人的显示:5人以下。

select 
t.Tname as '老师姓名',
count(*) as '人数',
IF(
	count(*) >= 5,'5人以上','5人以下'
) as '分类'
from teachers as t
join students as s
using(Tid)
GROUP BY t.Tname

CASE语句

作为表达式的if也可以用CASE WHEN来实现:

SELECT IF(sva=1,"男","女") AS s FROM table_name 
WHERE sva != '';
SELECT CASE sva
WHEN 1 THEN '男' 
  ELSE '女' 
END AS s 
FROM table_name
WHERE sva != '';
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值