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

Come funziona RPAD() in MariaDB

In MariaDB, RPAD() è una funzione stringa incorporata che riempie la parte destra di una stringa con un certo numero di un carattere specificato.

Ad esempio, puoi utilizzare RPAD() per riempire la parte destra di una stringa con dei punti.

Sintassi

La sintassi è questa:

RPAD(str, len [, padstr])

Dove str è la stringa da riempire e len è il numero di caratteri in cui inserire la stringa. Nota che questa non è la quantità di riempimento in sé, ma è il numero totale di caratteri che la stringa restituita avrà dopo che è stata riempita.

padstr è un argomento facoltativo che specifica quale carattere utilizzare per il riempimento.

Esempio

Ecco un esempio di base:

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

Risultato:

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

Il carattere spazio è il carattere predefinito. Pertanto, se non includi un terzo argomento, viene utilizzato uno spazio. In questo caso, non abbiamo specificato un terzo argomento, quindi è stato utilizzato uno spazio.

Questo esempio restituisce tre colonne. L'ho fatto per renderti più facile vedere l'effetto di RPAD() più chiaramente. Il riempimento ha l'effetto di spingere la larghezza della colonna fino alla lunghezza del riempimento specificata.

In questo caso, le prime due colonne utilizzano due lunghezze di riempimento diverse e la terza è la stringa originale (non riempita).

Specifica un carattere di riempimento

Ecco un esempio che utilizza un terzo argomento. Specifica quale carattere utilizzare per il riempimento:

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

Risultato:

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

I punti ci consentono di vedere il riempimento più chiaramente.

Imbottitura più piccola della corda originale

Se il secondo argomento è minore della stringa originale, non viene aggiunto alcun riempimento e la stringa originale viene abbreviata al numero di caratteri specificato:

SELECT RPAD('Enlightenment', 7);

Risultato:

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

Esempio di database

Ecco un esempio di riempimento della parte destra dei valori in una colonna del database:

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

Risultato:

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

Argomenti nulli

Se uno (o tutti) gli argomenti sono null , il RPAD() la funzione restituisce null :

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

Risultato:

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

Modalità Oracle

Quando non in esecuzione in modalità Oracle, se il risultato è vuoto (cioè ha una lunghezza pari a zero) il risultato è una stringa vuota.

Tuttavia, durante l'esecuzione in modalità Oracle, il risultato è null .

Qui è in modalità predefinita (cioè non in modalità Oracle):

SELECT RPAD('', 0);

Risultato:

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

Passiamo ora alla modalità Oracle:

SET SQL_MODE=ORACLE;

Ed esegui di nuovo il codice:

SELECT RPAD('', 0);

Risultato:

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

Argomenti mancanti

Chiamando RPAD() senza almeno due argomenti genera un errore:

SELECT RPAD('Coffee');

Risultato:

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

La stessa cosa accade quando si chiama RPAD() senza argomenti:

SELECT RPAD();

Risultato:

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