Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como adicionar zeros à esquerda a um número no MySQL


Ao trabalhar com o MySQL, você pode ocasionalmente encontrar situações em que precisa preencher vários números com zeros à esquerda.

Talvez você tenha um requisito de que todos os números tenham três dígitos, mas nos dados fornecidos, os números variam de um único dígito a dois e talvez três dígitos. Seu requisito pode ser preencher todos os números com zeros à esquerda, mas apenas para compensar qualquer deficiência no requisito de três dígitos.

O LPAD() função faz exatamente o que você deseja neste cenário.


A função LPAD()


Estritamente falando, o LPAD() função preenche uma string com outra string. Funciona assim:
LPAD(str,len,padstr)

Onde str é a string para preencher, len é o comprimento necessário do resultado final, e padstr é a string que será usada para preencher a outra string.

Exemplo


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

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

Nesse caso, dois zeros à esquerda foram adicionados porque especificamos 3 como o comprimento necessário.

Então, se começarmos com um número de dois dígitos, apenas um zero é adicionado:
SELECT LPAD(17, 3, 0);

Resultado:
+----------------+
| LPAD(17, 3, 0) |
+----------------+
| 017            |
+----------------+

Valores diferentes de zero


O LPAD() função não se limita a apenas zeros. Como mencionado, ele pode ser usado para preencher qualquer string com qualquer outra string. Assim, você pode preencher um número com 1s iniciais, letras iniciais ou outros símbolos, se necessário.
SELECT LPAD(7, 10, '.');

Resultado:
+------------------+
| LPAD(7, 10, '.') |
+------------------+
| .........7       |
+------------------+

E porque na verdade é uma função de string, ela pode ser usada para preencher qualquer string não numérica. E não se limita a apenas um caractere de preenchimento - pode ser preenchido com vários caracteres, se necessário:
SELECT LPAD('Cat', 21, 'Meow! ') AS Result;

Resultado:
+-----------------------+
| Result                |
+-----------------------+
| Meow! Meow! Meow! Cat |
+-----------------------+