sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer RPAD() i MariaDB

I MariaDB, RPAD() er en indbygget strengfunktion, der udfylder den højre del af en streng med et bestemt tal på et bestemt tegn.

For eksempel kan du bruge RPAD() at polstre den højre del af en streng med prikker.

Syntaks

Syntaksen ser sådan ud:

RPAD(str, len [, padstr])

Hvor str er strengen, der skal udfyldes, og len er antallet af tegn, der skal udfyldes strengen til. Bemærk, at dette ikke er mængden af ​​udfyldning i sig selv, det er det samlede antal tegn, som den returnerede streng vil have, efter at den er blevet polstret.

padstr er et valgfrit argument, der specificerer, hvilket tegn der skal bruges til udfyldningen.

Eksempel

Her er et grundlæggende eksempel:

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

Resultat:

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

Mellemrumstegnet er standardtegnet. Derfor, hvis du ikke inkluderer et tredje argument, bruges et mellemrum. I dette tilfælde specificerede vi ikke et tredje argument, og derfor blev der brugt et mellemrum.

Dette eksempel returnerer tre kolonner. Det gjorde jeg for at gøre det nemmere for dig at se effekten af ​​RPAD() mere tydeligt. Polstringen har den effekt, at den skubber søjlens bredde ud til den specificerede polstringslængde.

I dette tilfælde bruger de to første kolonner to forskellige udfyldningslængder, og den tredje er den originale (upolstrede) streng.

Angiv et udfyldningstegn

Her er et eksempel, der bruger et tredje argument. Dette angiver, hvilket tegn der skal bruges til udfyldningen:

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

Resultat:

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

Prikkerne gør det muligt for os at se polstringen tydeligere.

Padding mindre end den originale streng

Hvis det andet argument er mindre end den oprindelige streng, tilføjes ingen udfyldning, og den oprindelige streng forkortes til det angivne antal tegn:

SELECT RPAD('Enlightenment', 7);

Resultat:

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

Databaseeksempel

Her er et eksempel på udfyldning af den højre del af værdierne i en databasekolonne:

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          |
+-----------------+---------------+

Nul-argumenter

Hvis nogen (eller alle) af argumenterne er null , RPAD() funktion returnerer 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-tilstand

Når ikke kører i Oracle-tilstand, hvis resultatet er tomt (dvs. det har en længde på nul), er resultatet en tom streng.

Men når du kører i Oracle-tilstand, er resultatet null .

Her er den i standardtilstand (dvs. ikke). i Oracle-tilstand):

SELECT RPAD('', 0);

Resultat:

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

Lad os nu skifte til Oracle-tilstand:

SET SQL_MODE=ORACLE;

Og kør koden igen:

SELECT RPAD('', 0);

Resultat:

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

Manglende argumenter

Kalder RPAD() uden mindst to argumenter resulterer i en fejl:

SELECT RPAD('Coffee');

Resultat:

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

Det samme sker, når du kalder RPAD() uden nogen argumenter:

SELECT RPAD();

Resultat:

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

  1. MySQL Workbench:Sådan holder du forbindelsen i live

  2. PostgreSQL hvordan man kan se hvilke forespørgsler der er kørt

  3. SQL - Hvordan gemmer og navigerer man i hierarkier?

  4. MySQL:Kloning af en MySQL-database på den samme MySql-instans