MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como RPAD() funciona no MariaDB


No MariaDB, RPAD() é uma função de string embutida que preenche a parte direita de uma string com um certo número de um caractere especificado.

Por exemplo, você pode usar RPAD() para preencher a parte direita de uma string com pontos.

Sintaxe


A sintaxe fica assim:
RPAD(str, len [, padstr])

Onde str é a string a ser preenchida e len é o número de caracteres para preencher a string. Observe que esta não é a quantidade de preenchimento em si, mas sim o número total de caracteres que a string retornada terá após ser preenchida.

padstr é um argumento opcional que especifica qual caractere usar para o preenchimento.

Exemplo


Segue um exemplo básico:
SELECT 
    RPAD('Fire', 8) AS "1",
    RPAD('Fire', 15) AS "2",
    'Fire' AS "3";

Resultado:
+----------+-----------------+------+
| 1        | 2               | 3    |
+----------+-----------------+------+
| Fire     | Fire            | Fire |
+----------+-----------------+------+

O caractere de espaço é o caractere padrão. Portanto, se você não incluir um terceiro argumento, um espaço será usado. Nesse caso, não especificamos um terceiro argumento e, portanto, um espaço foi usado.

Este exemplo retorna três colunas. Fiz isso para facilitar a visualização do efeito de RPAD() mais claramente. O preenchimento tem o efeito de empurrar a largura da coluna para o comprimento de preenchimento especificado.

Nesse caso, as duas primeiras colunas usam dois comprimentos de preenchimento diferentes e a terceira é a string original (sem preenchimento).

Especifique um caractere de preenchimento


Aqui está um exemplo que usa um terceiro argumento. Isso especifica qual caractere usar para o preenchimento:
SELECT RPAD('Fire', 15, '.');

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

Os pontos nos permitem ver o preenchimento com mais clareza.

Preenchimento menor que a string original


Se o segundo argumento for menor que a string original, nenhum preenchimento será adicionado e a string original será reduzida para o número de caracteres especificado:
SELECT RPAD('Enlightenment', 7);

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

Exemplo de banco de dados


Aqui está um exemplo de preenchimento da parte direita dos valores em uma coluna de banco de dados:
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


Se algum (ou todos) dos argumentos for null , o RPAD() função retorna 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


Quando não executando no modo Oracle, se o resultado estiver vazio (ou seja, tiver um comprimento de zero), o resultado será uma string vazia.

No entanto, ao executar no modo Oracle, o resultado é null .

Aqui está no modo padrão (ou seja, não no modo Oracle):
SELECT RPAD('', 0);

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

Agora vamos mudar para o modo Oracle:
SET SQL_MODE=ORACLE;

E execute o código novamente:
SELECT RPAD('', 0);

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

Argumentos ausentes


Chamando RPAD() sem pelo menos dois argumentos resulta em um erro:
SELECT RPAD('Coffee');

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

A mesma coisa acontece ao chamar RPAD() sem argumentos:
SELECT RPAD();

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