Mybatis中case when如何配合其他函数

avatar
作者
猴君
阅读量:0

在 MyBatis 中,你可以在 <select><update><insert> 语句中使用 <if> 标签结合 SQL 函数和 CASE WHEN 语句。以下是一个示例,展示了如何在查询中使用 CASE WHEN 配合其他函数:

<select id="selectUsers" resultType="User">   SELECT     id,     name,     age,     CASE       WHEN age >= 18 THEN '成年'       ELSE '未成年'     END AS age_group   FROM     users </select> 

在这个示例中,我们从 users 表中选择所有用户,并使用 CASE WHEN 语句根据年龄判断用户是否成年。结果集中的列 age_group 将包含成年或未成年的字符串。

如果你需要在查询中使用更复杂的逻辑,可以结合使用 <if> 标签和其他 SQL 函数。例如,假设你想根据年龄计算用户的平均收入,可以使用以下查询:

<select id="selectAverageIncomeByAge" resultType="map">   SELECT     AVG(CASE       WHEN age >= 18 THEN income       ELSE 0     END) AS average_income   FROM     users </select> 

在这个示例中,我们使用 AVG() 函数和 CASE WHEN 语句计算年龄在 18 岁及以上的用户的平均收入。对于未成年用户,我们将 income 列的值视为 0。结果集中的列 average_income 将包含计算出的平均收入。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!