Oracle case用法
时间: 2023-07-08 12:48:43 浏览: 53
Oracle中的CASE语句提供了一种灵活的方式来进行条件逻辑判断。它类似于其他编程语言中的switch语句和if语句。
下面是一个简单的示例,它使用CASE语句来根据不同的条件返回不同的结果:
```
SELECT
CASE
WHEN grade >= 90 THEN 'A'
WHEN grade >= 80 THEN 'B'
WHEN grade >= 70 THEN 'C'
WHEN grade >= 60 THEN 'D'
ELSE 'F'
END as letter_grade
FROM grades;
```
在上面的示例中,我们使用CASE语句来根据成绩返回字母等级。如果成绩大于或等于90,我们返回“ A”,如果成绩大于或等于80,则返回“ B”,以此类推。最后,如果成绩低于60,则返回“ F”。
CASE语句还可以与其他函数和表达式一起使用,以便进行更复杂的条件判断。例如:
```
SELECT
CASE
WHEN name LIKE 'A%' THEN UPPER(name)
WHEN name LIKE 'B%' THEN LOWER(name)
ELSE name
END as modified_name
FROM employees;
```
在上面的示例中,我们使用CASE语句根据员工姓名的首字母来修改姓名。如果姓名以“A”开头,则将其转换为大写,如果以“B”开头,则将其转换为小写,否则保留原样。
相关问题
oracle case when 用法
Oracle中的CASE WHEN语句是一种流程控制语句,它允许根据条件执行不同的操作。它的基本语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END;
```
其中,`condition1`、`condition2`等是条件表达式,`result1`、`result2`等是与条件表达式对应的结果。如果没有任何条件表达式被满足,则返回`ELSE`子句中的结果。如果没有`ELSE`子句,则返回`NULL`。
除了上述基本语法,Oracle的CASE WHEN语句还有其他一些用法,例如:
1. 使用搜索表达式:
```
CASE search_expression
WHEN expression1 THEN result1
WHEN expression2 THEN result2
...
ELSE resultN
END;
```
其中,`search_expression`是要比较的表达式,`expression1`、`expression2`等是与`search_expression`进行比较的表达式,`result1`、`result2`等是与条件表达式对应的结果。
2. 嵌套CASE WHEN语句:
```
CASE
WHEN condition1 THEN
CASE
WHEN subcondition1 THEN subresult1
WHEN subcondition2 THEN subresult2
...
ELSE subresultN
END
WHEN condition2 THEN result2
...
ELSE resultN
END;
```
其中,`subcondition1`、`subcondition2`等是嵌套的条件表达式,`subresult1`、`subresult2`等是与嵌套条件表达式对应的结果。
oracle case when用法sql
Oracle中的CASE WHEN语句是一种用于在SQL查询中实现条件逻辑的表达式。它类似于其他编程语言中的if-then-else结构,可以根据满足的条件返回不同的结果。
在Oracle中,CASE WHEN语句有两种常见的用法:
1. 简单的CASE表达式:使用该表达式可以根据列的值返回不同的结果。语法如下:
```
SELECT CASE 列名
WHEN 值1 THEN 结果1
WHEN 值2 THEN 结果2
ELSE 结果3
END
FROM table1;
```
这种用法适用于在查询结果中根据列的值进行条件判断,并返回不同的结果。
2. 检索的CASE表达式:使用该表达式可以根据条件进行判断并返回不同的结果。语法如下:
```
SELECT CASE
WHEN 条件1 THEN 条件1的结果
WHEN 条件2 THEN 条件2的结果
ELSE 条件1,2以外的结果
END
FROM table1;
```
这种用法适用于根据多个条件进行判断,并返回符合条件的结果。
除了上述两种用法之外,CASE WHEN语句还可以用于作为条件判断函数,如COUNT和SUM。例如:
```
SELECT COUNT( CASE WHEN AGE = 18 THEN '18岁的学生个数' END) EIGHTENN,
COUNT( CASE WHEN AGE = 19 THEN '19岁的学生个数' END) NINETEEN
FROM "PeopleInfo";
```
这个查询可以根据年龄进行条件判断,并返回不同年龄段的学生个数。
总结一下,Oracle中的CASE WHEN语句是一种用于在SQL查询中实现条件逻辑的表达式。它有两种常见的用法:简单的CASE表达式和检索的CASE表达式。此外,它还可以用于作为条件判断函数,如COUNT和SUM。