Develop

[PostgreSQL] 숫자를 금액단위 3자리마다 콤마로 변환하는 방법

issuemaker99 2024. 10. 22. 15:35
728x90

PostgreSQL에서 숫자를 금액 단위로 표시할 때, 3자리마다 콤마(,)를 찍어 가독성을 높이는 것이 중요합니다. 예를 들어, 1000000이라는 숫자를 1,000,000처럼 변환하여 출력하면 금액을 쉽게 인식할 수 있습니다. 이번 포스트에서는 PostgreSQL에서 숫자를 3자리마다 콤마로 구분하여 문자열 타입으로 변환하는 방법을 예제를 통해 설명하겠습니다.


1. to_char() 함수 소개

PostgreSQL에서는 숫자 형식을 문자열로 변환할 때 주로 to_char() 함수를 사용합니다. 이 함수는 다양한 형식을 적용하여 숫자를 문자열로 변환할 수 있는데, 특히 금액 단위 표시에 유용합니다.

to_char() 함수 구문

to_char(number, '형식')
  • number: 변환하려는 숫자.
  • '형식': 숫자를 출력할 형식을 지정하는 문자열.

여기서 숫자를 금액 단위로 변환하려면 '999,999,999'와 같은 형식을 사용하면 됩니다.


2. 숫자를 3자리마다 콤마로 구분하여 변환하는 방법

이제 to_char() 함수를 사용하여 숫자를 금액 단위로 변환하는 예제를 살펴보겠습니다.

예제 1: 기본적인 숫자 변환

SELECT to_char(1234567890, '999,999,999,999') AS formatted_amount;

결과:

 formatted_amount
-------------------
 1,234,567,890

 

이 쿼리는 숫자 1234567890을 3자리마다 콤마로 구분하여 1,234,567,890이라는 문자열로 변환합니다.

설명:

  • '999,999,999,999': 이 형식은 3자리마다 콤마를 넣고, 최대 12자리 숫자를 처리할 수 있습니다. 만약 숫자가 12자리보다 더 길다면 형식을 더 확장하면 됩니다.
  • 결과는 문자열로 변환됩니다. 따라서 출력 시 숫자처럼 보이지만, 실제로는 문자열이므로 연산에는 사용할 수 없습니다.

3. 소수점 포함 금액 변환

금액은 종종 소수점 아래 두 자리를 포함합니다. 이런 경우에는 소수점 형식까지 지정할 수 있습니다.

예제 2: 소수점 포함 금액 변환

SELECT to_char(1234567.89, '999,999,999.99') AS formatted_amount;

결과:

 formatted_amount
-------------------
 1,234,567.89

설명:

  • '999,999,999.99': 이 형식은 소수점 이하 두 자리를 포함하는 금액을 표현합니다. 소수점 아래 자리 수는 필요에 따라 조정할 수 있습니다.
  • 결과는 소수점 이하 자리를 포함하여 1,234,567.89라는 문자열로 변환됩니다.

4. 음수 금액 처리

금액이 음수일 경우에도 to_char() 함수는 적절히 음수 부호를 붙여서 변환할 수 있습니다.

예제 3: 음수 금액 변환

SELECT to_char(-9876543.21, '999,999,999.99') AS formatted_amount;

결과:

 formatted_amount
-------------------
 -9,876,543.21

설명:

  • 숫자가 음수일 때는 자동으로 앞에 - 부호가 붙습니다.
  • 금액 형식은 동일하며, 결과는 -9,876,543.21처럼 출력됩니다.

5. to_char() 함수에서 다양한 형식 사용하기

to_char() 함수는 다양한 형식으로 숫자를 변환할 수 있습니다. 예를 들어, 0을 포함한 형식을 사용할 수 있습니다. 만약 숫자의 자릿수가 형식보다 작다면, 빈 자리는 0으로 채울 수 있습니다.

예제 4: 0으로 채운 금액 변환

SELECT to_char(12345, '000,000,000') AS formatted_amount;

결과:

 formatted_amount
-------------------
 000,012,345

설명:

  • '000,000,000': 이 형식은 빈 자리를 0으로 채웁니다.
  • 결과는 000,012,345처럼 출력되어 고정된 자릿수를 유지할 수 있습니다.

6. 실용 예제: 테이블의 금액 데이터를 변환하여 출력하기

실제 데이터베이스 테이블에서 금액 데이터를 변환하여 출력할 때도 to_char()를 사용할 수 있습니다. 예를 들어, amount라는 컬럼이 있는 테이블에서 금액을 3자리마다 콤마로 구분해 표시하고 싶다면 다음과 같은 쿼리를 사용할 수 있습니다.

예제 5: 테이블 데이터 금액 형식 변환

SELECT id, to_char(amount, '999,999,999.99') AS formatted_amount
FROM transactions;

결과:

 id | formatted_amount
----+------------------
  1 |      1,000,000.00
  2 |      5,432,109.50
  3 |         987,654.21

설명:

  • transactions 테이블의 amount 컬럼을 금액 형식으로 변환하여 출력합니다.
  • to_char(amount, '999,999,999.99')는 각 금액을 3자리마다 콤마로 구분하고, 소수점 이하 두 자리를 포함한 문자열로 변환합니다.

 

LIST