This commit is contained in:
vipg
2025-11-14 18:25:35 +08:00
parent 9c217e5622
commit a485a65395
2 changed files with 20 additions and 3 deletions

View File

@@ -4,4 +4,17 @@ BEGIN
NEW.updated_at = CURRENT_TIMESTAMP;
RETURN NEW;
END;
$$ LANGUAGE plpgsql VOLATILE;
$$ LANGUAGE plpgsql VOLATILE;
-- 创建自动格式化小数的函数按需去除尾部多余0
CREATE OR REPLACE FUNCTION format_numeric_to_original(n NUMERIC)
RETURNS TEXT AS $$
BEGIN
-- 逻辑如果是整数小数部分全0返回整数文本否则返回去除尾部0的文本
IF n = TRUNC(n) THEN
RETURN TRUNC(n)::TEXT; -- 整数场景1.000000 → '1'
ELSE
RETURN TRIM(TRAILING '0' FROM TRIM(TRAILING '.' FROM n::TEXT)); -- 小数场景1.230000 → '1.23'1.002000 → '1.002'
END IF;
END;
$$ LANGUAGE plpgsql IMMUTABLE; -- IMMUTABLE相同输入返回相同输出支持索引

View File

@@ -165,8 +165,12 @@ BEGIN
v.id AS variety_id,
vn.name AS name,
vc.code AS code,
vt.tick AS tick,
vtp.price AS tick_price
-- 调用格式化函数自动去除尾部多余0
format_numeric_to_original(vt.tick) AS tick,
format_numeric_to_original(vtp.price) AS tick_price,
-- 可选:保留原始精度字段(供计算使用)
vt.tick AS tick_original,
vtp.price AS tick_price_original
FROM
variety v
LEFT JOIN variety_name vn