sql >> Database >  >> RDS >> Mysql

Voorloopnullen toevoegen aan een getal in MySQL

Wanneer u met MySQL werkt, kunt u af en toe situaties tegenkomen waarin u een aantal getallen met voorloopnullen moet invullen.

Misschien heb je een vereiste dat alle nummers drie cijfers hebben, maar in de gegevens die je hebt gekregen, variëren de nummers van een enkel cijfer tot twee en misschien drie cijfers. Uw vereiste zou kunnen zijn om alle getallen met voorloopnullen in te vullen, maar alleen om een ​​eventueel tekort in de driecijferige vereiste aan te vullen.

De LPAD() functie doet precies wat je wilt in dit scenario.

De LPAD()-functie

Strikt genomen is de LPAD() functiepads een tekenreeks met een andere tekenreeks. Het werkt als volgt:

LPAD(str,len,padstr)

Waar str is de tekenreeks die moet worden ingevuld, len is de vereiste lengte van het eindresultaat, en padstr is de tekenreeks die zal worden gebruikt om de andere tekenreeks op te vullen.

Voorbeeld

Hier is een voorbeeld van het opvullen van een eencijferig nummer met twee nullen:

SELECT LPAD(7, 3, 0);

Resultaat:

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

In dit geval zijn er twee voorloopnullen toegevoegd omdat we 3 . hebben gespecificeerd als de vereiste lengte.

Dus als we beginnen met een getal van twee cijfers, wordt er maar één nul toegevoegd:

SELECT LPAD(17, 3, 0);

Resultaat:

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

Niet-nulwaarden

De LPAD() functie is niet beperkt tot alleen nullen. Zoals vermeld, kan het worden gebruikt om elke snaar te vullen met een andere snaar. U kunt dus indien nodig een nummer invullen met voorloop-en-en, of hoofdletters of andere symbolen.

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

Resultaat:

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

En omdat het eigenlijk een tekenreeksfunctie is, kan het worden gebruikt om elke niet-numerieke tekenreeks op te vullen. En het is niet beperkt tot slechts één opvulteken - het kan indien nodig worden opgevuld met meerdere tekens:

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

Resultaat:

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


  1. Somwaarden van multidimensionale array per sleutel zonder lus

  2. Slaapstand:Index maken

  3. SQL:in clausule in opgeslagen procedure:hoe waarden doorgeven

  4. Hoe een geheel getal naar een decimaal te converteren in SQL Server