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

如何让pg_size_pretty按GB/MB混合格式显示带两位小数的计算列

解决方案

可以通过CASE条件判断结合数值计算和字符串拼接,实现自定义的存储大小格式输出,替代pg_size_pretty的默认行为:

SELECT
  CASE
    -- 当总和超过或等于1000MB时,转换为GB并保留两位小数
    WHEN SUM(thumbdrive_size) >= 1000 THEN
      ROUND(SUM(thumbdrive_size) / 1024, 2) || ' gig'
    -- 其余情况保持MB格式,保留两位小数
    ELSE
      ROUND(SUM(thumbdrive_size), 2) || ' MB'
  END AS formatted_drive_size
FROM your_table_name;

关键说明:

  • 若thumbdrive_size字段单位是字节而非MB,需先将总和转换为MB再判断,示例调整如下:
    SELECT
      CASE
        WHEN SUM(thumbdrive_size) / (1024 * 1024) >= 1000 THEN
          ROUND(SUM(thumbdrive_size) / (1024 * 1024 * 1024), 2) || ' gig'
        ELSE
          ROUND(SUM(thumbdrive_size) / (1024 * 1024), 2) || ' MB'
      END AS formatted_drive_size
    FROM your_table_name;
    
  • 如果业务需求是按1000进制(而非存储行业常用的1024进制)转换单位,只需将公式中的1024替换为1000即可。
  • ROUND函数确保数值保留两位小数,字符串拼接符||用于将数值与单位组合成最终显示文本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 20:02:02