웹 페이지에서 보이는 금액을 세 자리마다 콤마를 찍어 보여주어야 하는 일이 있었다.
js 파일에서 데이터를 받아서 함수를 만들어 처리할 수도 있지만,
굳이 웹 페이지 리소스를 낭비하기보다는 MariaDB의 FORMAT 함수로 처리했다.
Syntax
FORMAT(num, decimal_position[, locale])
FORMAT 함수는 주어진 숫자를 문자열로 형식화하고 반환하는 함수이다.
decimal_position 은 소숫점 아래 숫자의 개수이고,
locale 은 선택적으로 locale 값을 지정하여 지정된 지역에 적합한 패턴으로 숫자를 형식화할 수 있다.
SELECT FORMAT(21571621000, 0) as FormatNum;
+----------------+
| FormatNum |
+----------------+
| 21,571,621,000 |
+----------------+
기본적으로 세 자리마다 콤마를 표시해준다.
SELECT FORMAT('21571621000', 0) as FormatNum;
+----------------+
| FormatNum |
+----------------+
| 21,571,621,000 |
+----------------+
값은 숫자 형이 아니어도 된다.
SELECT FORMAT(21571621000, 4) as FormatNum;
+---------------------+
| FormatNum |
+---------------------+
| 21,571,621,000.0000 |
+---------------------+
decimal_position 에 입력한 숫자만큼 소수점이 표시된다.
SELECT FORMAT('21571621000.123456', 3, 'ko_KR') as FormatNum;
+--------------------+
| FormatNum |
+--------------------+
| 21,571,621,000.123 |
+--------------------+
SELECT FORMAT('21571621000.123456', 3, 'da_DK') as FormatNum;
+--------------------+
| FormatNum |
+--------------------+
| 21.571.621.000,123 |
+--------------------+
SELECT FORMAT('21571621000.123456', 3, 'rm_CH') as FormatNum;
+--------------------+
| FormatNum |
+--------------------+
| 21'571'621'000,123 |
+--------------------+
locale에 값을 넣어 그 지역에 적합한 패턴으로 형식화 해 주는 것을 볼 수 있다.
MariaDB 에서 지원하는 locale 목록은 아래의 링크를 참고하자.
https://runebook.dev/en/docs/mariadb/server-locale/index
MariaDB - Server Locale - The lc_time_names server system variable sets the language used by the date and time
runebook.dev
'DataBase' 카테고리의 다른 글
MariaDB | REPLACE 함수 (문자열 치환) (0) | 2022.11.09 |
---|