oracle where中使用case when
时间: 2023-06-05 20:47:59 浏览: 181
在 Oracle 中的 WHERE 子句中使用 CASE WHEN,可以根据不同的条件选择性地筛选数据。语法如下:
```
SELECT column1, column2, ...
FROM table_name
WHERE column_name = (CASE
WHEN condition1 THEN value1
WHEN condition2 THEN value2
...
ELSE value_else
END);
```
例如:
```
SELECT name, age, salary
FROM employees
WHERE salary = (CASE
WHEN age < 30 THEN 5000
WHEN age BETWEEN 30 AND 40 THEN 6000
ELSE 7000
END);
```
相关问题
oracle where 后接 case when 用法
在Oracle数据库中,CASE WHEN 结构是一种条件选择语句,用于在SQL查询的`WHERE`子句中根据特定的条件返回不同的值或执行不同的操作。它的基本语法如下:
```sql
SELECT column(s)
FROM table_name
WHERE column_name
CASE
WHEN condition_1 THEN expression_1
WHEN condition_2 THEN expression_2
[ ... ]
ELSE default_expression
END;
```
这里的`column_name`是你要检查的字段,`condition_1`, `condition_2`是你的条件,如果`column_name`满足某个条件,`expression_1`或`expression_2`就会被应用;如果没有满足任何条件,那么会执行`default_expression`部分。
例如,如果你想找出工资超过5000并且低于8000的员工,你可以这样做:
```sql
SELECT employee_id, salary
FROM employees
WHERE salary =
CASE
WHEN salary > 5000 THEN salary
WHEN salary < 8000 THEN salary
ELSE NULL
END;
```
这将只显示那些工资在5000到8000之间的记录,其他情况将不会出现在结果集中。
ORACLE中如何使用case when
在 Oracle 中的 WHERE 子句中使用 CASE WHEN,可以根据不同的条件选择性地筛选数据。语法如下:
```
SELECT column1, column2, ...
FROM table_name
WHERE column_name = (CASE
WHEN condition1 THEN value1
WHEN condition2 THEN value2
...
ELSE value_else
END);
```
例如:
```
SELECT name, age, salary
FROM employees
WHERE salary = (CASE
WHEN age < 30 THEN 5000
WHEN age BETWEEN 30 AND 40 THEN 6000
ELSE 7000
END);
```
阅读全文