case then sql oracle

2023年 8月 4日 67.6k 0

在Oracle中,CASE THEN语句是一种非常有用的条件语句,它可以根据特定条件执行不同的操作。它可以在SELECT、WHERE和ORDER BY等语句中使用,可以将非常复杂的操作转换为简单的语句。比如,假设我们有一个员工表,它包含员工的姓名、工资、职位和入职年份。我们想要查询出所有员工的姓名、职位和工资,但是对于那些是经理的员工,我们还想查询出他们的入职年份。对于这种情况,我们可以使用如下的代码实现:

SELECT name, position,
CASE
WHEN position = 'manager' THEN hire_year
ELSE NULL
END AS hire_year
FROM employee;

上述代码中,我们使用了 CASE THEN 语句来查询入职年份。首先使用了 SELECT 语句,选择了需要查询的字段 name、position 和 hire_year,其中 hire_year 是个别名。然后使用了 CASE WHEN THEN 语句,对于 position = 'manager' 的记录,会在 hire_year 列中显示入职年份,否则会显示 NULL。这样,我们就查询出了所有员工的姓名、职位和工资,对于经理,还查询出了他们的入职年份。

在实际的查询工作中,CASE THEN 语句可以非常灵活地使用。例如,在WHERE子句中,我们可以根据需要指定不同的条件。假设我们想要查询出所有入职年份为2020年或者工资大于5000的员工,我们可以使用如下代码实现:

SELECT * FROM employee
WHERE
CASE
WHEN hire_year = 2020 THEN 1
WHEN salary >5000 THEN 1
ELSE 0
END = 1;

上述代码中,我们使用了 CASE THEN 语句来限制查询结果。首先使用了 SELECT * 语句,查询全部字段。然后在 WHERE 子句中使用了 CASE WHEN THEN 语句,对于 hire_year=2020 或者 salary>5000 的记录,会返回 1,否则返回 0。然后我们将返回值等于1的结果作为最终查询结果。这样,我们就查询出了所有入职年份为2020年或者工资大于5000的员工。

总之,CASE THEN 语句是Oracle中非常有用的条件语句,可以根据特定条件执行不同的操作。它可以非常灵活地使用在SELECT、WHERE和ORDER BY等语句中,可以将非常复杂的操作转换为简单的语句。对于经常需要处理数据的人来说,掌握 CASE THEN 语句是必不可少的。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论