阅读量: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
将包含计算出的平均收入。