oracle中case when如何使用
时间: 2023-11-17 18:54:38 浏览: 37
Oracle中的CASE WHEN是一种条件表达式,用于根据满足或不满足特定条件的值来执行不同的操作。它可以用于SELECT语句的字段显示、WHERE子句的条件筛选和ORDER BY子句的排序。
在SELECT语句中,CASE WHEN可以用于根据特定条件生成不同的结果值。例如,以下是一个使用CASE WHEN的示例:
SELECT ID,
CASE WHEN SEX=0 AND AGE<=18 THEN NAME||'(女)'||AGE||'岁'
ELSE NAME||AGE||'岁'||'(不满足小于等于18岁的女生条件)'
END DETAIL
FROM "PeopleInfo";
此语句将根据AGE和SEX字段的值生成不同的结果,并将其作为DETAIL字段的值返回。
在GROUP BY子句中,CASE WHEN可以用作分组的条件判断。例如,以下是一个使用CASE WHEN作为分组条件的示例:
SELECT CASE WHEN AGE=18 THEN '18'
WHEN AGE=19 THEN '19'
END AGE,
COUNT(*)
FROM "PeopleInfo"
GROUP BY CASE WHEN AGE=18 THEN '18'
WHEN AGE=19 THEN '19'
END;
此语句将根据AGE字段的值进行条件判断,并将结果作为AGE字段的值进行分组。
相关问题
oracle 中case when
在Oracle中,CASE WHEN语句用于在SELECT、WHERE和ORDER BY子句中进行条件判断。它的语法结构如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
```
其中,condition1、condition2等是条件表达式,result1、result2等是对应条件表达式为真时的结果,ELSE子句是可选的,表示所有条件表达式都不为真时的默认结果。在使用CASE WHEN语句时,需要注意条件表达式的数据类型必须一致,否则会出现类型转换错误。
oracle中case when 示例
以下是Oracle中使用CASE WHEN的示例:
1. 简单的CASE表达式:
```sql
SELECT CASE column_name
WHEN value1 THEN result1
WHEN value2 THEN result2
ELSE result3
END
FROM table1;
```
2. 检索的CASE表达式:
```sql
SELECT CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE result3
END
FROM table1;
```
3. 作为条件判断的COUNT和SUM:
```sql
SELECT COUNT(CASE WHEN AGE = 18 THEN '18岁的学生个数' END) EIGHTEEN,
COUNT(CASE WHEN AGE = 19 THEN '19岁的学生个数' END) NINETEEN
FROM "PeopleInfo";
```