sql >> Databasteknik >  >> RDS >> Mysql

Hur man lägger till ledande nollor till ett nummer i MySQL

När du arbetar med MySQL kan du ibland stöta på situationer där du behöver fylla på en massa siffror med inledande nollor.

Kanske har du ett krav på att alla siffror ska ha tre siffror, men i den information du har fått varierar siffrorna från en ensiffrig till två och kanske tre siffror. Ditt krav kan vara att fylla alla siffror med inledande nollor, men bara för att kompensera för eventuella brister i det tresiffriga kravet.

LPAD() funktion gör precis vad du vill i det här scenariot.

LPAD()-funktionen

Strängt taget, LPAD() funktion fyller en sträng med en annan sträng. Det fungerar så här:

LPAD(str,len,padstr)

Där str är strängen att fylla på, len är den nödvändiga längden på slutresultatet och padstr är strängen som kommer att användas för att vaddera den andra strängen.

Exempel

Här är ett exempel på att fylla ut ett ensiffrigt nummer med två nollor:

SELECT LPAD(7, 3, 0);

Resultat:

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

I det här fallet lades två inledande nollor till eftersom vi angav 3 som önskad längd.

Så om vi börjar med ett tvåsiffrigt tal läggs bara en nolla till:

SELECT LPAD(17, 3, 0);

Resultat:

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

Icke-nollvärden

LPAD() funktionen är inte begränsad till bara nollor. Som nämnts kan den användas för att vaddera vilken sträng som helst med vilken annan sträng som helst. Så du kan fylla ett nummer med inledande 1:or, eller inledande bokstäver eller andra symboler om det behövs.

SELECT LPAD(7, 10, '.');

Resultat:

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

Och eftersom det faktiskt är en strängfunktion, kan den användas för att fylla alla icke-numeriska strängar. Och det är inte begränsat till bara ett utfyllnadstecken – det kan fyllas med flera tecken om det behövs:

SELECT LPAD('Cat', 21, 'Meow! ') AS Result;

Resultat:

+-----------------------+
| Result                |
+-----------------------+
| Meow! Meow! Meow! Cat |
+-----------------------+


  1. Hur kan du se om ett värde inte är numeriskt i Oracle?

  2. Hur man avinstallerar SQL Server Management Studio(SSMS) - SQL Server/TSQL Tutorial Del 23.1

  3. Hur använder jag ROW_NUMBER()?

  4. Hur man säkrar MySQL/MariaDB-servrar