MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

SQL LPAD()

W SQL LPAD() to powszechnie używana funkcja, która dopełnia lewą część ciągu określonym znakiem. Funkcja może być używana na ciągach i liczbach, chociaż w zależności od DBMS, liczby muszą być przekazane jako ciąg, zanim będą mogły zostać uzupełnione.

DBMS, które mają LPAD() funkcja obejmuje MySQL, MariaDB, PostgreSQL i Oracle.

DBMS, których nie mieć LPAD() funkcja obejmuje SQL Server i SQLite (chociaż istnieją inne sposoby zastosowania lewego dopełnienia w tych DBMS).

Przykład

Oto przykład pokazujący, jak używać LPAD() w kodzie SQL:

SELECT LPAD('Look Left', 20);

Wynik:

+-----------------------+
| LPAD('Look Left', 20) |
+-----------------------+
|            Look Left  |
+-----------------------+

W tym przykładzie lewa część ciągu jest uzupełniona spacją (domyślny znak wypełniający), a wynikowy ciąg ma długość 20 znaków (ponieważ określiłem 20 jako drugi argument).

Oracle działa tak samo, ale musimy użyć FROM DUAL wykonując zapytanie w ten sposób (bez odpytywania rzeczywistej tabeli):

SELECT LPAD('Look Left', 20) 
FROM DUAL;

Wynik:

    LPAD('LOOKLEFT',20) 
_______________________ 
           Look Left   

Określ znak wypełniający

Wypełnienie niekoniecznie musi być spacją. Możemy opcjonalnie dodać trzeci argument, aby określić znak (lub znaki) do użycia w dopełnieniu.

SELECT LPAD('7', 3, '0');

Wynik:

007

W tym przypadku uzupełniłem liczbę zerami. W tym przykładzie przekazałem liczbę jako ciąg znaków.

W niektórych DBMS-ach (takich jak MariaDB i MySQL) możemy przekazać liczbę jako liczbę, jak również liczbę do uzupełnienia:

SELECT LPAD(7, 3, 0);

Wynik:

007

Możemy to również zrobić w Oracle:

SELECT LPAD(7, 3, 0) 
FROM DUAL;

Wynik:

007

Ale PostgreSQL ma z tym problem:

SELECT LPAD(7, 3, 0);

Wynik:

ERROR:  function lpad(integer, integer, integer) does not exist

Serwer SQL

SQL Server nie ma funkcji LPAD() funkcja, ale ma funkcję FORMAT() funkcja umożliwiająca dopełnianie liczb wiodącymi zerami:

SELECT FORMAT(7, '000');

Wynik:

007

Działa to tak, że przekazujemy liczbę, po której następuje ciąg formatu. W powyższym przykładzie ciąg formatu to 000 . Jest to niestandardowy ciąg formatu liczbowego, który powoduje dopełnienie oryginalnej liczby, tak aby wynik składał się z trzech cyfr. Jeśli w oryginalnym numerze nie ma jeszcze trzech cyfr, jest on uzupełniony zerami.

Aby pozostawić ciągi padów w SQL Server, możemy zrobić coś takiego:

SELECT RIGHT('.......' + 'Cat', 7);

Wynik:

....Cat

Istnieje również kilka innych odpowiedników LPAD() w SQL Server.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. NieobsłużonePromiseRejectionWarning:MongooseServerSelectionError

  2. MongoDB $currentDate

  3. mongodb stronicowania w oparciu o zakres

  4. Rusztowania Yeoman, Mongoose i MongoDB

  5. Utwórz wielojęzyczny indeks tekstowy w MongoDB