MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak działa LPAD() w MariaDB

W MariaDB, LPAD() jest wbudowaną funkcją ciągów znaków, która uzupełnia lewą część ciągu określoną liczbą znaków.

Na przykład możesz użyć LPAD() aby uzupełnić lewą część ciągu spacjami. Możesz też uzupełnić liczbę wiodącymi zerami.

Składnia

Składnia wygląda tak:

LPAD(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 LPAD('Lion', 8);

Wynik:

+-----------------+
| LPAD('Lion', 8) |
+-----------------+
|     Lion        |
+-----------------+

W tym przypadku nie podaliśmy trzeciego argumentu (dla znaku dopełniającego), więc użyliśmy spacji. Spacja jest znakiem domyślnym.

Określ znak wypełniający

Oto przykład z trzecim argumentem. To określa, jakiego znaku użyć do wypełnienia:

SELECT LPAD('Lion', 8, '.');

Wynik:

+----------------------+
| LPAD('Lion', 8, '.') |
+----------------------+
| ....Lion             |
+----------------------+

Kropki pozwalają nam wyraźniej zobaczyć wypełnienie.

Liczby wypełniające

Oto przykład uzupełniania liczby zerami:

SELECT LPAD(7, 3, 0);

Wynik:

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

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 LPAD('Lion', 2);

Wynik:

+-----------------+
| LPAD('Lion', 2) |
+-----------------+
| Li              |
+-----------------+

Przykłady baz danych

Oto przykład dopełnienia lewej części wartości w kolumnie bazy danych:

SELECT 
    LPAD(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          |
+-----------------+---------------+

Oto kolejny przykład wypełniający kolumnę ceny:

SELECT 
    ProductId, 
    ProductPrice, 
    LPAD(ProductPrice, 8, 0) 
FROM Products;

Wynik:

+-----------+--------------+--------------------------+
| ProductId | ProductPrice | LPAD(ProductPrice, 8, 0) |
+-----------+--------------+--------------------------+
|         1 |        25.99 | 00025.99                 |
|         2 |        25.99 | 00025.99                 |
|         3 |        14.75 | 00014.75                 |
|         4 |        11.99 | 00011.99                 |
|         5 |        33.49 | 00033.49                 |
|         6 |       245.00 | 00245.00                 |
|         7 |        55.99 | 00055.99                 |
|         8 |         9.99 | 00009.99                 |
+-----------+--------------+--------------------------+

Argumenty zerowe

Jeśli którykolwiek (lub wszystkie) argumenty są null , LPAD() funkcja zwraca null :

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

Wynik:

+---------------------+---------------------------+--------------------------+
| LPAD(null, 10, '.') | LPAD('Coffee', null, '.') | LPAD('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 LPAD('', 0);

Wynik:

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

Przejdźmy teraz do trybu Oracle:

SET SQL_MODE=ORACLE;

I uruchom kod ponownie:

SELECT LPAD('', 0);

Wynik:

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

Brakujące argumenty

Wywołanie LPAD() bez co najmniej dwóch argumentów powoduje błąd:

SELECT LPAD('Coffee');

Wynik:

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

To samo dzieje się podczas wywoływania LPAD() bez żadnych argumentów:

SELECT LPAD();

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zainstalować i zabezpieczyć MariaDB na CentOS 8

  2. Zgodność z PCI dla MySQL i MariaDB z ClusterControl

  3. MariaDB JSON_REPLACE() Objaśnienie

  4. Jak CHAR_LENGTH() działa w MariaDB

  5. Jak CHR() działa w MariaDB