sql >> Base de Datos >  >> RDS >> Mysql

Cómo agregar ceros iniciales a un número en MySQL

Al trabajar con MySQL, es posible que ocasionalmente encuentre situaciones en las que necesite rellenar un montón de números con ceros a la izquierda.

Quizás tenga el requisito de que todos los números tengan tres dígitos, pero en los datos que se le han proporcionado, los números van desde un solo dígito hasta dos y quizás tres dígitos. Su requisito podría ser completar todos los números con ceros a la izquierda, pero solo para compensar cualquier déficit en el requisito de tres dígitos.

El LPAD() función hace exactamente lo que quiere en este escenario.

La función LPAD()

Estrictamente hablando, el LPAD() La función rellena una cadena con otra cadena. Funciona así:

LPAD(str,len,padstr)

Donde str es la cadena para rellenar, len es la longitud requerida del resultado final, y padstr es la cadena que se usará para rellenar la otra cadena.

Ejemplo

Este es un ejemplo de cómo rellenar un número de un solo dígito con dos ceros:

SELECT LPAD(7, 3, 0);

Resultado:

+---------------+
| LPAD(7, 3, 0) |
+---------------+
| 007           |
+---------------+

En este caso, se agregaron dos ceros a la izquierda porque especificamos 3 como la longitud requerida.

Entonces, si comenzamos con un número de dos dígitos, solo se agrega un cero:

SELECT LPAD(17, 3, 0);

Resultado:

+----------------+
| LPAD(17, 3, 0) |
+----------------+
| 017            |
+----------------+

Valores distintos de cero

El LPAD() La función no se limita solo a ceros. Como se mencionó, se puede usar para rellenar cualquier cadena con cualquier otra cadena. De modo que puede rellenar un número con 1 o letras iniciales u otros símbolos si es necesario.

SELECT LPAD(7, 10, '.');

Resultado:

+------------------+
| LPAD(7, 10, '.') |
+------------------+
| .........7       |
+------------------+

Y debido a que en realidad es una función de cadena, se puede usar para rellenar cualquier cadena no numérica. Y no se limita a un solo carácter de relleno:se puede rellenar con varios caracteres si es necesario:

SELECT LPAD('Cat', 21, 'Meow! ') AS Result;

Resultado:

+-----------------------+
| Result                |
+-----------------------+
| Meow! Meow! Meow! Cat |
+-----------------------+