當我們使用 MySQL 數據庫存儲大量數字類型的數據,例如金融、人口統計數據等時,經常需要將數字進行千分位的分組顯示,以便更清晰地展示數據。
在 MySQL 中,可以使用如下函數實現數字的千分位拆分:
DELIMITER $$ CREATE FUNCTION format_number(num DECIMAL(65,2)) RETURNS VARCHAR(100) BEGIN DECLARE integerPart VARCHAR(100); DECLARE decimalPart VARCHAR(100); DECLARE result VARCHAR(100); SET integerPart = FORMAT(FLOOR(num), 0); SET decimalPart = IFNULL(TRIM(TRAILING '.' FROM FORMAT(num - FLOOR(num), 2)), ''); SET result = CONCAT(REPLACE(integerPart, ',', '.'), '.', decimalPart); RETURN result; END $$ DELIMITER ;
這段代碼中,定義了一個名為 format_number 的函數,參數類型為 DECIMAL(65,2),即可接受最大為 65 位數字和 2 位小數的數字。函數中先將整數部分和小數部分分別提取出來,再將整數部分中的千分位符號從 “,” 轉換為 “.”,最后將兩部分合并成最終的數字。
在使用該函數時,只需要將要顯示的數字傳入函數參數即可:
SELECT format_number(123456789.12); -- 顯示結果為:123.456.789,12
因此,使用上述代碼來實現 MySQL 數字千分位的分組顯示,可以使數據更加清晰易讀。