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

Como o LPAD() funciona no MariaDB


No MariaDB, LPAD() é uma função de string embutida que preenche a parte esquerda de uma string com um certo número de caracteres.

Por exemplo, você pode usar LPAD() para preencher a parte esquerda de uma string com espaços. Ou você pode preencher um número com zeros à esquerda.

Sintaxe


A sintaxe fica assim:
LPAD(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 LPAD('Lion', 8);

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

Nesse caso, não especificamos um terceiro argumento (para o caractere de preenchimento) e, portanto, um espaço foi usado. O caractere de espaço é o caractere padrão.

Especifique um caractere de preenchimento


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

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

Os pontos nos permitem ver o preenchimento com mais clareza.

Números de preenchimento


Aqui está um exemplo de preenchimento de um número com zeros:
SELECT LPAD(7, 3, 0);

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

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 LPAD('Lion', 2);

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

Exemplos de banco de dados


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

Aqui está outro exemplo que preenche uma coluna de preço:
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


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


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 LPAD('', 0);

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

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

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

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

Argumentos ausentes


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

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

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

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