溫馨提示×

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

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

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

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女