溫馨提示×

Mybatis中case when如何配合其他函數(shù)

小樊
81
2024-10-13 15:13:33
欄目: 編程語言

在 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ì)算出的平均收入。

0