Oracle Case函数使用介绍
简介
Oracle Case函数是一种“Switch Case”语句的变体,它允许用户根据某些条件来执行一组程序。Case功能通常用于SQL语句中,以在结果集中选择不同的输出。当满足某些条件时,Case语句将执行一个特定的操作,否则将执行另一个操作。
语法
基本语法如下:
CASE expression
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE result
END
或者直接使用简化版语法:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE result
END
其中:
- expression: 表达式,需要评估至一组值。
- condition1/2/.../N: 条件,需要测试expression值是否与这些条件匹配。
- result1/2/.../N: 指示与条件匹配时要返回的结果。
- ELSE result:在expression无法匹配任何条件情况下,将返回的值。
示例1:
现在假设我们有一个名为“students”的表,其中包含了学生们的信息(学号、姓名、年龄、性别、居住地址)。分类依据为年龄,将小于 18 岁的学生记作“未成年学生”,大于等于 18 岁的学生记作“成年学生”,可以使用如下SQL语句:
SELECT
ID,
Name,
Age,
Gender,
Address,
CASE
WHEN Age < 18 THEN '未成年学生'
ELSE '成年学生'
END AS age_group
FROM
students
执行以上SQL语句后,将返回一个结果集,其中包含每个学生的信息和其中一个列是“age_group”,其值要么为“未成年学生”,要么为“成年学生”。
示例2:
再假设我们现在有一个足球比赛得分的表,“scores”(比赛日期、主场队名、客场队名、主场得分、客场得分),我们需要在新的一列中将被评判为 “胜”、 “负”或者 “平”,从而表示每个队伍在这一次比赛中的赢、输或平的情况。请使用如下SQL语句:
SELECT
home_team,
away_team,
home_score,
away_score,
CASE
WHEN home_score > away_score THEN '胜'
WHEN home_score < away_score THEN '负'
ELSE '平'
END AS game_result
FROM
scores
执行以上SQL语句后,将返回一个结果集,其中包含每个比赛的信息和其中一个列是“game_result”,其值要么为“胜”,要么为“负”,要么为“平”。
以上就是 Oracle Case函数使用介绍,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Oracle case函数使用介绍 - Python技术站