You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用CASE语句更新表中存储为分数形式的数据

需求背景

现有一张水果统计原始表,结构如下:

Different Fruits(不同水果数)Total Fruits(总水果数)Fruits Fraction(水果占比)
35
26
22
46
11
66
616
420

需要按照以下规则填充Fruits Fraction字段,最终得到目标表:

Different Fruits(不同水果数)Total Fruits(总水果数)Fruits Fraction(水果占比)
353/5
262/6
222/2
464/6
111/1
666/6
6166/6
4204/6

规则说明:
当前共有6种不同的水果,单条记录的总水果数可超过6,要求用CASE语句实现逻辑:

  • 当总水果数 < 6时,占比为 不同水果数/总水果数
  • 当总水果数 >= 6时,占比为 不同水果数/6
    占比不需要约分,用字符类型存储即可。

实现方案

可以通过CASE判断加字符串拼接实现需求,以下是通用SQL写法:

1. 仅查询结果(不修改原表)

SELECT 
    "Different Fruits",
    "Total Fruits",
    CASE 
        WHEN "Total Fruits" < 6 THEN CONCAT("Different Fruits", '/', "Total Fruits")
        ELSE CONCAT("Different Fruits", '/', 6)
    END AS "Fruits Fraction"
FROM 你的表名;

2. 直接更新原表的占比字段

UPDATE 你的表名
SET "Fruits Fraction" = CASE 
    WHEN "Total Fruits" < 6 THEN CONCAT("Different Fruits", '/', "Total Fruits")
    ELSE CONCAT("Different Fruits", '/', 6)
END;

兼容说明

如果你使用的是MySQL等需要用反引号包裹带空格字段名的数据库,将语句中的双引号替换为反引号即可,例如`Different Fruits`。

内容的提问来源于stack exchange,提问作者classy_BLINK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:54:03