首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 查詢結果百分比顯示:CONCAT + LEFT 字串拼接實現

     編輯:MySQL 資料庫相關知識

    核心思路

    利用 CONCAT() 拼接字串,LEFT() 截取定長,直接在 SQL 輸出「12.34%」格式。

    函數速查

    • CONCAT(str1, str2, ...):任一參數為 NULL → 結果 NULL
    • LEFT(str, len):從左側截取 len 個字元

    標準寫法

    SELECT
        category,
        cnt,
        total,
        CONCAT(LEFT(cnt / total * 100, 5), '%') AS pct
    FROM (
        SELECT category, COUNT(*) AS cnt, (SELECT COUNT(*) FROM t) AS total
        FROM t GROUP BY category
    ) x;

    進階:ROUND 控制小數位

    CONCAT(ROUND(cnt / total * 100, 2), '%') AS pct
    -- 12.30%、8.70%、20.00%

    避坑清單

    1. 整數除法截斷:MySQL 整數相除結果為整數 → 任一運算元乘 1.0 或 CAST(cnt AS DECIMAL(10,4))
    2. 分母為零:NULLIF(total, 0) 或 CASE WHEN total=0 THEN '0%' ELSE ... END
    3. NULL 傳播:任何欄位 NULL 導致 CONCAT 結果 NULL → COALESCE(cnt,0), COALESCE(total,1)
    1. 上一篇文章:
    2. 下一篇文章:
    Copyright © 程式碼之家 All Rights Reserved