sql >> Databasteknik >  >> RDS >> MariaDB

Hur RPAD() fungerar i MariaDB

I MariaDB, RPAD() är en inbyggd strängfunktion som fyller den högra delen av en sträng med ett visst nummer av ett angivet tecken.

Du kan till exempel använda RPAD() att vaddera den högra delen av ett snöre med prickar.

Syntax

Syntaxen ser ut så här:

RPAD(str, len [, padstr])

Där str är strängen som ska fyllas och len är antalet tecken som strängen ska fyllas på. Observera att detta inte är mängden utfyllnad i sig, utan det är det totala antalet tecken som den returnerade strängen kommer att ha efter att den har utfyllts.

padstr är ett valfritt argument som anger vilket tecken som ska användas för utfyllnaden.

Exempel

Här är ett grundläggande exempel:

SELECT 
    RPAD('Fire', 8) AS "1",
    RPAD('Fire', 15) AS "2",
    'Fire' AS "3";

Resultat:

+----------+-----------------+------+
| 1        | 2               | 3    |
+----------+-----------------+------+
| Fire     | Fire            | Fire |
+----------+-----------------+------+

Mellanslagstecknet är standardtecknet. Därför, om du inte inkluderar ett tredje argument, används ett mellanslag. I det här fallet angav vi inte ett tredje argument, och därför användes ett mellanslag.

Detta exempel returnerar tre kolumner. Jag gjorde det för att göra det lättare för dig att se effekten av RPAD() tydligare. Utfyllnaden har effekten att skjuta ut kolonnens bredd till den angivna utfyllnadslängden.

I det här fallet använder de två första kolumnerna två olika utfyllnadslängder, och den tredje är den ursprungliga (ostoppade) strängen.

Ange en utfyllnadstecken

Här är ett exempel som använder ett tredje argument. Detta anger vilket tecken som ska användas för utfyllnad:

SELECT RPAD('Fire', 15, '.');

Resultat:

+-----------------------+
| RPAD('Fire', 15, '.') |
+-----------------------+
| Fire...........       |
+-----------------------+

Prickarna gör att vi kan se vadderingen tydligare.

Utfyllning mindre än originalsträngen

Om det andra argumentet är mindre än den ursprungliga strängen läggs ingen utfyllnad till och den ursprungliga strängen förkortas till det angivna antalet tecken:

SELECT RPAD('Enlightenment', 7);

Resultat:

+--------------------------+
| RPAD('Enlightenment', 7) |
+--------------------------+
| Enlight                  |
+--------------------------+

Databasexempel

Här är ett exempel på utfyllnad av den högra delen av värdena i en databaskolumn:

SELECT 
    RPAD(PetName, 15, '.') AS "Padded Name",
    PetName AS "Original Name"
FROM Pets;

Resultat:

+-----------------+---------------+
| Padded Name     | Original Name |
+-----------------+---------------+
| Fluffy......... | Fluffy        |
| Fetch.......... | Fetch         |
| Scratch........ | Scratch       |
| Wag............ | Wag           |
| Tweet.......... | Tweet         |
| Fluffy......... | Fluffy        |
| Bark........... | Bark          |
| Meow........... | Meow          |
+-----------------+---------------+

Nollargument

Om något (eller alla) av argumenten är null , RPAD() funktion returnerar null :

SELECT 
    RPAD(null, 10, '.'),
    RPAD('Coffee', null, '.'),
    RPAD('Coffee', 10, null);

Resultat:

+---------------------+---------------------------+--------------------------+
| RPAD(null, 10, '.') | RPAD('Coffee', null, '.') | RPAD('Coffee', 10, null) |
+---------------------+---------------------------+--------------------------+
| NULL                | NULL                      | NULL                     |
+---------------------+---------------------------+--------------------------+

Oracle Mode

När inte körs i Oracle-läge, om resultatet är tomt (dvs. det har en längd på noll) är resultatet en tom sträng.

Men när du kör i Oracle-läge är resultatet null .

Här är den i standardläge (dvs inte i Oracle-läge):

SELECT RPAD('', 0);

Resultat:

+-------------+
| RPAD('', 0) |
+-------------+
|             |
+-------------+

Låt oss nu byta till Oracle-läge:

SET SQL_MODE=ORACLE;

Och kör koden igen:

SELECT RPAD('', 0);

Resultat:

+-------------+
| RPAD('', 0) |
+-------------+
| NULL        |
+-------------+

Argument saknas

Anropar RPAD() utan minst två argument resulterar i ett fel:

SELECT RPAD('Coffee');

Resultat:

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

Samma sak händer när du anropar RPAD() utan några argument:

SELECT RPAD();

Resultat:

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

  1. Hämta tecknet mellan de två första specialtecknen i SQL

  2. Hur man frågar jsonb-arrayer med IN-operator

  3. CHAR() Exempel i MySQL

  4. 2 sätt att ta bort dubbletter av rader i SQLite