在 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
將包含計算出的平均收入。