在 MyBatis 中,你可以在 <select>
、<update>
或 <insert>
語句中使用 <if>
標(biāo)簽結(jié)合 SQL 函數(shù)和 CASE WHEN
語句。以下是一個示例,展示了如何在查詢中使用 CASE WHEN
配合其他函數(shù):
<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
語句根據(jù)年齡判斷用戶是否成年。結(jié)果集中的列 age_group
將包含成年或未成年的字符串。
如果你需要在查詢中使用更復(fù)雜的邏輯,可以結(jié)合使用 <if>
標(biāo)簽和其他 SQL 函數(shù)。例如,假設(shè)你想根據(jù)年齡計(jì)算用戶的平均收入,可以使用以下查詢:
<select id="selectAverageIncomeByAge" resultType="map">
SELECT
AVG(CASE
WHEN age >= 18 THEN income
ELSE 0
END) AS average_income
FROM
users
</select>
在這個示例中,我們使用 AVG()
函數(shù)和 CASE WHEN
語句計(jì)算年齡在 18 歲及以上的用戶的平均收入。對于未成年用戶,我們將 income
列的值視為 0。結(jié)果集中的列 average_income
將包含計(jì)算出的平均收入。