2024年3月14日发(作者:)

case when用法sql oracle

CASE WHEN在SQL和Oracle中都是同样的语法,用于实现条件控

制语句。它的基本语法如下:

```

CASE

WHEN condition1 THEN result1

WHEN condition2 THEN result2

...

ELSE default result

END

```

其中,CASE是关键字,condition与result应根据具体需要修改,

ELSE和default result都是可选的。

一般情况下,CASE WHEN语句在SELECT语句中使用。例如:

```

SELECT CASE

WHEN age < 18 THEN '未成年'

ELSE '成年'

END

FROM student;

```

这个语句会将student表中age小于18的行的结果设为“未成

年”,其他的则设为“成年”。

除了上述的基本语法外,CASE WHEN还有一些其他的用法:

1.可以用于与其他函数一起使用,例如:

```

SELECT AVG(CASE

WHEN gender = 'Male' THEN salary * 0.8

ELSE salary

END)

FROM employee;

```

这样的语句将会按照员工性别来计算平均工资,男性员工的工资

将会以80%计算。

2.可以嵌套使用,例如:

```

SELECT CASE

WHEN age < 18 THEN '未成年'

ELSE

CASE

WHEN age BETWEEN 18 AND 30 THEN '成年人'

ELSE '老年人'

END

END

FROM student;

```

这个语句会根据学生的年龄来判断其类别,未成年的学生设为

“未成年”,18至30岁之间的学生设为“成年人”,其他的设为“老

年人”。

总之,CASE WHEN是一种非常常用的条件控制语句,能够帮助我们

更好地处理数据,提升SQL的灵活性。