sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo dar formato a números con comas en SQL

La mayoría de los principales RDBMS tienen funciones que nos permiten formatear números con comas como separador de grupos o separador decimal.

Algunos RDBMS también generan ciertos tipos de datos numéricos con comas en el lugar correspondiente.

A continuación se muestran ejemplos de números de formato con comas en algunos de los DBMS más populares.

MySQL

En MySQL, podemos usar el FORMAT() función para formatear números con comas:

SELECT FORMAT(123456.789, 2);

Resultado:

123,456.79

No es necesario especificar dónde deben ir las comas. La función sabe dónde ponerlos.

Esta función también acepta un tercer argumento para especificar la configuración regional. No todas las configuraciones regionales usan una coma como separador de grupo; algunas configuraciones regionales usan una coma como separador decimal. El FORMAT() es lo suficientemente inteligente como para saber qué convención usar.

Ejemplo:

SELECT FORMAT(123456.789, 2, 'de_DE');

Resultado:

123,456.79

Oráculo

En Oracle podemos usar el TO_CHAR() función para formatear un número con comas:

SELECT TO_CHAR(12345, 'fm99G999D00')
FROM DUAL;

Resultado:

12,345.00

El G El elemento de formato es un marcador de posición para el separador de grupo y el D es para el separador decimal.

En este caso, el separador de grupos genera una coma y el carácter decimal genera un punto. Eso es porque mi sesión actual NLS_TERRITORY el parámetro está establecido en Australia .

Es cierto que podríamos usar una coma codificada en lugar de la G elemento de formato, pero eso supone que el separador de grupo es una coma. No todas las configuraciones regionales usan una coma como separador de grupo.

Consulte Cómo formatear un número con una coma en Oracle para obtener más información y ejemplos para formatear números con comas en Oracle.

Servidor SQL

En SQL Server podemos usar el FORMAT() función para formatear números con comas. Esta función acepta el número y una cadena de formato:

SELECT 
    FORMAT(123456.789, 'N') AS "Number",
    FORMAT(123456.789, 'P') AS "Percent",
    FORMAT(123456.789, 'C') AS "Currency";

Resultado:

+------------+----------------+-------------+
| Number     | Percent        | Currency    |
|------------+----------------+-------------|
| 123,456.79 | 12,345,678.90% | $123,456.79 |
+------------+----------------+-------------+

La función también acepta un argumento de "cultura" opcional para especificar la configuración regional que se usará para la salida formateada.

También puede construir su propia cadena de formato personalizado para poder determinar con precisión dónde va cada separador de miles y separador decimal.

Consulte Cómo dar formato a números con comas en SQL Server para ver ejemplos.

PostgreSQL

PostgreSQL tiene un TO_CHAR() función que funciona como la función de Oracle del mismo nombre:

SELECT TO_CHAR(123456.78, 'fm999G999D99');

Resultado:

123,456.78

Esta función tiene en cuenta la configuración regional, por lo que presentará los separadores decimales y de grupo apropiados para la configuración regional.

PostgreSQL también tiene un money tipo de datos, que se genera en un formato compatible con la configuración regional. Consulte Formatear números con comas en PostgreSQL para ver un ejemplo.

SQLite

SQLite es un poco más limitado en comparación con la mayoría de los otros DBMS. Sin embargo, tiene un printf() función que nos permite formatear números según una cadena de formato:

SELECT printf("%,d", 123456789);

Resultado:

123,456,789

Esto funciona bien con números enteros, pero los números reales/coma flotante requieren un poco más de trabajo. Consulte Formatear números con una coma en SQLite para obtener más información.

Actualizar :SQLite 3.38.0 (lanzado el 22 de febrero de 2022) cambió el nombre de printf() función para format() . El printf() original el nombre se conserva como un alias para la compatibilidad con versiones anteriores.

Entonces, el ejemplo anterior se puede cambiar a esto:

SELECT format("%,d", 123456789);

Resultado:

123,456,789

MariaDB

En MariaDB, podemos usar el FORMAT() función para formatear un número con comas:

SELECT FORMAT(123456.789, 2);

Resultado:

123,456.79

Al igual que con la función de MySQL del mismo nombre, no es necesario especificar dónde deben ir las comas. La función sabe dónde ponerlos.