在AS/400 SQL 查询中实现条件表达式

本文介绍了如何在AS/400的SELECT语句中使用CASE表达式,通过CASE表达式简化了复杂查询,将多条SQL语句的功能整合到一条语句中,具体以生成学生成绩等级为例进行了详细说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在AS/400的SELECT语句中可以使用CASE表达式,它可根据表达式的内容返回不同的
值,它可以简化原来需多条SQL语句实现的查询,以前用多个游标完成的统计可在一条语
句中完成,以下举例加以说明。
1.语法规则:
Case语句
--当对不同条件产生不同的结果值时,可使用Case语句。
--Case语句计算所有定义的条件,并按条件是否为真而返回结果。
语法如下:
CASE [<input_expression>]
WHEN <when_expression> THEN <result_expression>
[ELSE <else_expression>]
END
Input_expression是任何有效的SQL Server表达式或布尔表达式。
When_expression是任何有效的SQL --Server表达式或布尔表达式。这个表达式和Input_expression比较,如果Input_expression没有定义,则When_expression应该是一个布尔表达式。
Result_expression是任何有效的SQL Server表达式。如果When_expression和Input_expression的比较返回TRUE
(如果定义了Input_expression)或When_expression的值为TRUE,则计算表达式,并返回其结果。
否则计算Else_expression中的表达式,并返回其结果。
2.举例说明
例如:
AS/400上有一个学生成绩表GRADE。要根据学生成绩生成成绩等级。

执行SQL查询,这个查询是按照学生成绩的等级进行分类,在报表中生成新的一列“grade_class”
select no,grade,
case
when grade>=90 then 'Excellence'
when grade>=70 and grade <90 then 'Good'
when grade>=60 and grade <70 then 'Pass'
else 'Not pass'
end as grade_class
from xqlib/grade

转载于:https://www.cnblogs.com/etsdpt/archive/2012/01/09/2316976.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值