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

Cómo funciona RPAD() en MariaDB

En MariaDB, RPAD() es una función de cadena incorporada que rellena la parte derecha de una cadena con un cierto número de un carácter específico.

Por ejemplo, puede usar RPAD() para rellenar la parte derecha de una cadena con puntos.

Sintaxis

La sintaxis es así:

RPAD(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 
    RPAD('Fire', 8) AS "1",
    RPAD('Fire', 15) AS "2",
    'Fire' AS "3";

Resultado:

+----------+-----------------+------+
| 1        | 2               | 3    |
+----------+-----------------+------+
| Fire     | Fire            | Fire |
+----------+-----------------+------+

El carácter de espacio es el carácter predeterminado. Por lo tanto, si no incluye un tercer argumento, se usa un espacio. En este caso, no especificamos un tercer argumento, por lo que se utilizó un espacio.

Este ejemplo devuelve tres columnas. Lo hice para que le fuera más fácil ver el efecto de RPAD() mas claro. El relleno tiene el efecto de empujar el ancho de la columna hasta la longitud de relleno especificada.

En este caso, las dos primeras columnas utilizan dos longitudes de relleno diferentes y la tercera es la cadena original (sin relleno).

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 RPAD('Fire', 15, '.');

Resultado:

+-----------------------+
| RPAD('Fire', 15, '.') |
+-----------------------+
| Fire...........       |
+-----------------------+

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

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 RPAD('Enlightenment', 7);

Resultado:

+--------------------------+
| RPAD('Enlightenment', 7) |
+--------------------------+
| Enlight                  |
+--------------------------+

Ejemplo de base de datos

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

SELECT 
    RPAD(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          |
+-----------------+---------------+

Argumentos nulos

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

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

Resultado:

+---------------------+---------------------------+--------------------------+
| RPAD(null, 10, '.') | RPAD('Coffee', null, '.') | RPAD('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 RPAD('', 0);

Resultado:

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

Ahora cambiemos al modo Oracle:

SET SQL_MODE=ORACLE;

Y ejecuta el código de nuevo:

SELECT RPAD('', 0);

Resultado:

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

Argumentos faltantes

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

SELECT RPAD('Coffee');

Resultado:

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

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

SELECT RPAD();

Resultado:

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