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'