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

Agregar ceros a la izquierda en SQL

A continuación se muestran ejemplos de cómo agregar un cero inicial a un número en SQL, usando varios DBMS.

Oráculo

Oracle tiene un TO_CHAR(number) función que nos permite agregar ceros a la izquierda de un número. Devuelve su resultado como una cadena en el formato especificado.

SELECT TO_CHAR(7, '000')
FROM DUAL;

Resultado:

007

El 0 El elemento de formato es lo que genera los ceros iniciales. Si no quisiéramos ceros a la izquierda, podríamos usar 9 .

Aquí hay una comparación entre 0 y 9 para demostrar lo que quiero decir:

SELECT 
    TO_CHAR(1234.456, '000G000D00') AS "0",
    TO_CHAR(1234.456, '999G999D99') AS "9"
FROM DUAL;

Resultado:

             0              9 
______________ ______________ 
 001,234.46       1,234.46    

El G es para el separador de grupo y la D es para el separador decimal. Consulte esta lista de elementos de formato de número para obtener una lista completa.

Oracle también tiene un LPAD() función que nos permite rellenar un número con ceros a la izquierda (o cualquier otro carácter). Consulte 2 formas de dar formato a un número con ceros a la izquierda en Oracle para ver un ejemplo.

PostgreSQL

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

SELECT TO_CHAR(7, '000');

Resultado:

007

Y aquí hay una comparación entre 0 y 9 :

SELECT 
    TO_CHAR(1234.456, '000G000D00') AS "0",
    TO_CHAR(1234.456, '999G999D99') AS "9";

Resultado:

      0      |      9      
-------------+-------------
  001,234.46 |    1,234.46

Consulte Modificadores y patrones de plantilla para formato numérico en Postgres para obtener una lista completa de patrones de plantilla que se pueden usar con esta función en PostgreSQL.

Al igual que Oracle, PostgreSQL también tiene un LPAD() función que nos permite rellenar números con ceros a la izquierda. Consulte 2 formas de agregar ceros a la izquierda en PostgreSQL para ver un ejemplo.

MySQL

MySQL tiene un LPAD() función que nos permite rellenar la parte izquierda de una cadena o número con el carácter o serie de caracteres elegidos. Por lo tanto, podemos usarlo para rellenar nuestro número con ceros:

SELECT LPAD(7, 3, 0);

Resultado:

007

Afortunadamente, podemos pasar el número como un tipo numérico, por lo que no es necesario convertirlo primero en una cadena.

Consulte Cómo agregar ceros iniciales a un número en MySQL para obtener más información.

MariaDB

Al igual que MySQL, MariaDB también tiene un LPAD() función que nos permite rellenar la parte izquierda de una cadena o número con nuestro carácter o serie de caracteres elegidos:

SELECT LPAD(7, 3, 0);

Resultado:

007

Y al igual que con MySQL, podemos pasar el número como un tipo numérico, por lo que no es necesario convertirlo primero en una cadena.

Consulte Cómo rellenar un número con ceros a la izquierda en MariaDB para obtener más información.

Servidor SQL

SQL Server tiene un FORMAT() función que nos permite formatear números usando una cadena de formato:

SELECT FORMAT(7, '000');

Resultado:

007

Aquí está con un separador de grupos y un separador decimal:

SELECT FORMAT(1234, '0,000.00');

Resultado:

1,234.00

Consulte Agregar ceros iniciales y finales en SQL Server para obtener más información.

SQLite

SQLite tiene un PRINTF() función que se puede usar para agregar ceros a la izquierda de un número:

SELECT PRINTF('%03d', 7);

Resultado:

007

Consulte Cómo dar formato a números con ceros a la izquierda en SQLite para obtener una explicació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('%03d', 7);

Resultado:

007