oracle sql中case when 怎么计数
时间: 2023-11-17 12:58:19 浏览: 54
在Oracle SQL中,可以使用CASE WHEN语句来进行计数。例如,如果你想计算users表中年龄大于等于18岁的男性用户数量,可以使用以下语句:
SELECT COUNT(CASE WHEN age >= 18 AND sex = 1 THEN 1 END) AS male_count
FROM users;
这个语句中,COUNT函数用于计算满足条件的记录数量,CASE WHEN语句用于判断每个记录是否符合条件,如果符合则返回1,否则返回NULL。最后,AS关键字用于给计算结果取一个别名。
相关问题
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。
oracle中case when嵌套case when
在Oracle中,可以使用CASE WHEN语句进行条件判断和嵌套。嵌套CASE WHEN语句可以用来处理更复杂的条件逻辑。在你提供的SQL语句中,使用了嵌套CASE WHEN语句来计算机房状态。
案例提供了一个例子来解释嵌套CASE WHEN语句的用法。在这个例子中,当sum(ups_status)为1时,机房状态为0;当sum(ups_status)为2时,机房状态为1;当sum(ups_status)为0时,机房状态为0。