W MariaDB, RPAD()
jest wbudowaną funkcją ciągu, która dopełnia prawą część ciągu określoną liczbą określonego znaku.
Na przykład możesz użyć RPAD()
do wypełnienia prawej części sznurka kropkami.
Składnia
Składnia wygląda tak:
RPAD(str, len [, padstr])
Gdzie str
jest ciągiem do wypełnienia, a len
to liczba znaków do uzupełnienia ciągu. Zwróć uwagę, że nie jest to ilość samego dopełnienia, a raczej całkowita liczba znaków, które będzie miał zwrócony ciąg po uzupełnieniu.
padstr
jest opcjonalnym argumentem, który określa, którego znaku użyć do wypełnienia.
Przykład
Oto podstawowy przykład:
SELECT
RPAD('Fire', 8) AS "1",
RPAD('Fire', 15) AS "2",
'Fire' AS "3";
Wynik:
+----------+-----------------+------+ | 1 | 2 | 3 | +----------+-----------------+------+ | Fire | Fire | Fire | +----------+-----------------+------+
Spacja jest znakiem domyślnym. Dlatego jeśli nie podasz trzeciego argumentu, zostanie użyta spacja. W tym przypadku nie podaliśmy trzeciego argumentu, więc użyliśmy spacji.
Ten przykład zwraca trzy kolumny. Zrobiłem to, aby ułatwić Ci zobaczenie efektu RPAD()
jaśniej. Wypełnienie powoduje wypchnięcie szerokości kolumny do określonej długości wypełnienia.
W tym przypadku pierwsze dwie kolumny używają dwóch różnych długości wypełnienia, a trzecia jest oryginalnym (niewypełnionym) ciągiem.
Określ znak wypełniający
Oto przykład z trzecim argumentem. To określa, jakiego znaku użyć do wypełnienia:
SELECT RPAD('Fire', 15, '.');
Wynik:
+-----------------------+ | RPAD('Fire', 15, '.') | +-----------------------+ | Fire........... | +-----------------------+
Kropki pozwalają nam wyraźniej zobaczyć wypełnienie.
Dopełnienie mniejsze niż oryginalny ciąg
Jeśli drugi argument jest mniejszy niż oryginalny ciąg, nie jest dodawane żadne uzupełnienie, a oryginalny ciąg jest skracany do określonej liczby znaków:
SELECT RPAD('Enlightenment', 7);
Wynik:
+--------------------------+ | RPAD('Enlightenment', 7) | +--------------------------+ | Enlight | +--------------------------+
Przykład bazy danych
Oto przykład wypełnienia prawej części wartości w kolumnie bazy danych:
SELECT
RPAD(PetName, 15, '.') AS "Padded Name",
PetName AS "Original Name"
FROM Pets;
Wynik:
+-----------------+---------------+ | Padded Name | Original Name | +-----------------+---------------+ | Fluffy......... | Fluffy | | Fetch.......... | Fetch | | Scratch........ | Scratch | | Wag............ | Wag | | Tweet.......... | Tweet | | Fluffy......... | Fluffy | | Bark........... | Bark | | Meow........... | Meow | +-----------------+---------------+
Argumenty zerowe
Jeśli którykolwiek (lub wszystkie) argumenty są null
, RPAD()
funkcja zwraca null
:
SELECT
RPAD(null, 10, '.'),
RPAD('Coffee', null, '.'),
RPAD('Coffee', 10, null);
Wynik:
+---------------------+---------------------------+--------------------------+ | RPAD(null, 10, '.') | RPAD('Coffee', null, '.') | RPAD('Coffee', 10, null) | +---------------------+---------------------------+--------------------------+ | NULL | NULL | NULL | +---------------------+---------------------------+--------------------------+
Tryb Oracle
Kiedy nie działa w trybie Oracle, jeśli wynik jest pusty (tj. ma długość równą zero), wynikiem jest pusty ciąg.
Jednak podczas pracy w trybie Oracle wynik to null
.
Tutaj jest w trybie domyślnym (tzn. nie w trybie Oracle):
SELECT RPAD('', 0);
Wynik:
+-------------+ | RPAD('', 0) | +-------------+ | | +-------------+
Przejdźmy teraz do trybu Oracle:
SET SQL_MODE=ORACLE;
I uruchom kod ponownie:
SELECT RPAD('', 0);
Wynik:
+-------------+ | RPAD('', 0) | +-------------+ | NULL | +-------------+
Brakujące argumenty
Wywołanie RPAD()
bez co najmniej dwóch argumentów powoduje błąd:
SELECT RPAD('Coffee');
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'
To samo dzieje się podczas wywoływania RPAD()
bez żadnych argumentów:
SELECT RPAD();
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'