sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona LPAD() en MariaDB

En MariaDB, LPAD() es una función de cadena incorporada que rellena la parte izquierda de una cadena con una cierta cantidad de caracteres.

Por ejemplo, puede usar LPAD() para rellenar la parte izquierda de una cadena con espacios. O podría rellenar un número con ceros a la izquierda.

Sintaxis

La sintaxis es así:

LPAD(str, len [, padstr])

Donde str es la cadena a rellenar, y len es el número de caracteres para rellenar la cadena. Tenga en cuenta que esta no es la cantidad de relleno en sí, sino la cantidad total de caracteres que tendrá la cadena devuelta después de haber sido rellenada.

padstr es un argumento opcional que especifica qué carácter usar para el relleno.

Ejemplo

He aquí un ejemplo básico:

SELECT LPAD('Lion', 8);

Resultado:

+-----------------+
| LPAD('Lion', 8) |
+-----------------+
|     Lion        |
+-----------------+

En este caso, no especificamos un tercer argumento (para el carácter de relleno), por lo que se utilizó un espacio. El carácter de espacio es el carácter predeterminado.

Especifique un carácter de relleno

Aquí hay un ejemplo que usa un tercer argumento. Esto especifica qué carácter usar para el relleno:

SELECT LPAD('Lion', 8, '.');

Resultado:

+----------------------+
| LPAD('Lion', 8, '.') |
+----------------------+
| ....Lion             |
+----------------------+

Los puntos nos permiten ver el relleno más claramente.

Números de relleno

Este es un ejemplo de cómo rellenar un número con ceros:

SELECT LPAD(7, 3, 0);

Resultado:

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

Relleno más pequeño que la cadena original

Si el segundo argumento es menor que la cadena original, no se agrega relleno y la cadena original se acorta al número de caracteres especificado:

SELECT LPAD('Lion', 2);

Resultado:

+-----------------+
| LPAD('Lion', 2) |
+-----------------+
| Li              |
+-----------------+

Ejemplos de bases de datos

Aquí hay un ejemplo de cómo rellenar la parte izquierda de los valores en una columna de base de datos:

SELECT 
    LPAD(PetName, 15, '.') AS "Padded Name",
    PetName AS "Original Name"
FROM Pets;

Resultado:

+-----------------+---------------+
| Padded Name     | Original Name |
+-----------------+---------------+
| .........Fluffy | Fluffy        |
| ..........Fetch | Fetch         |
| ........Scratch | Scratch       |
| ............Wag | Wag           |
| ..........Tweet | Tweet         |
| .........Fluffy | Fluffy        |
| ...........Bark | Bark          |
| ...........Meow | Meow          |
+-----------------+---------------+

Aquí hay otro ejemplo que rellena una columna de precios:

SELECT 
    ProductId, 
    ProductPrice, 
    LPAD(ProductPrice, 8, 0) 
FROM Products;

Resultado:

+-----------+--------------+--------------------------+
| ProductId | ProductPrice | LPAD(ProductPrice, 8, 0) |
+-----------+--------------+--------------------------+
|         1 |        25.99 | 00025.99                 |
|         2 |        25.99 | 00025.99                 |
|         3 |        14.75 | 00014.75                 |
|         4 |        11.99 | 00011.99                 |
|         5 |        33.49 | 00033.49                 |
|         6 |       245.00 | 00245.00                 |
|         7 |        55.99 | 00055.99                 |
|         8 |         9.99 | 00009.99                 |
+-----------+--------------+--------------------------+

Argumentos nulos

Si alguno (o todos) de los argumentos son null , el LPAD() la función devuelve null :

SELECT 
    LPAD(null, 10, '.'),
    LPAD('Coffee', null, '.'),
    LPAD('Coffee', 10, null);

Resultado:

+---------------------+---------------------------+--------------------------+
| LPAD(null, 10, '.') | LPAD('Coffee', null, '.') | LPAD('Coffee', 10, null) |
+---------------------+---------------------------+--------------------------+
| NULL                | NULL                      | NULL                     |
+---------------------+---------------------------+--------------------------+

Modo oráculo

Cuando no ejecutándose en modo Oracle, si el resultado está vacío (es decir, tiene una longitud de cero), el resultado es una cadena vacía.

Sin embargo, cuando se ejecuta en modo Oracle, el resultado es null .

Aquí está en modo predeterminado (es decir, no en modo Oracle):

SELECT LPAD('', 0);

Resultado:

+-------------+
| LPAD('', 0) |
+-------------+
|             |
+-------------+

Ahora cambiemos al modo Oracle:

SET SQL_MODE=ORACLE;

Y ejecuta el código de nuevo:

SELECT LPAD('', 0);

Resultado:

+-------------+
| LPAD('', 0) |
+-------------+
| NULL        |
+-------------+

Argumentos faltantes

Llamando a LPAD() sin al menos dos argumentos da como resultado un error:

SELECT LPAD('Coffee');

Resultado:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LPAD'

Lo mismo sucede al llamar a LPAD() sin argumentos:

SELECT LPAD();

Resultado:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LPAD'