oracle where中使用case when
时间: 2023-06-05 15:47:59 浏览: 109
在 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中如何使用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);
```
oracle where之后 case when
Oracle的WHERE之后的CASE WHEN语句可以用于根据条件执行不同的逻辑。其中,CASE WHEN表达式有两种形式:简单Case函数和Case搜索函数。简单Case函数的语法为:CASE 表达式 WHEN 值1 THEN 结果1 WHEN 值2 THEN 结果2 ELSE 结果3 END。而Case搜索函数的语法为:CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 ELSE 结果3 END。
在使用CASE WHEN语句进行WHERE条件筛选时,可以使用变形的方式。比如,可以使用以下语法:SELECT * FROM table_data t WHERE t.col_data = (CASE WHEN t.column_data = '条件1' THEN t.column_data1 WHEN t.column_data = '条件2' THEN t.rep_data END)。这样可以根据不同的条件筛选数据。
另外,在使用CASE WHEN进行IN运算时,可以使用以下语法:SELECT * FROM table_data t WHERE t.col_data IN ( (CASE WHEN t.column_data IN ('条件1', '条件2') THEN t.column_data1 END), (CASE WHEN t.column_data IN ('条件3', '条件4') THEN t.column_data2 END) )。这样可以根据不同的条件进行IN运算。
此外,如果需要使用复杂逻辑进行抓取,可以使用以下语法:SELECT * FROM table_data t WHERE t.col_data IN ( (CASE WHEN t.column_data IN ('条件1', '条件2') AND t.rep_type = 'A' THEN t.column_data1 END), (CASE WHEN t.column_data IN ('条件3', '条件4') AND t.rep_type = 'A' THEN t.column_data2 END), (CASE WHEN t.column_data IN ('条件1', '条件2') AND t.rep_type = 'B' THEN t.column_data3 END), (CASE WHEN t.column_data IN ('条件3', '条件4') AND t.rep_type = 'B' THEN t.column_data4 END), t.column_data5 )。这样可以根据不同的条件执行不同的逻辑。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>