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

Dopełnienie w SQL

Niektóre RDBMS zapewniają funkcję LPAD() i RPAD() funkcja, która pozwala nam wstawić lewy lub prawy smyczek struny. Niektóre funkcje pozwalają nam również dodawać początkowe lub końcowe zera.

Poniżej znajdują się przykłady zastosowania dopełnienia SQL w niektórych bardziej popularnych systemach RDBMS.

Wyrocznia

Oracle udostępnia nam LPAD() i RPAD() specjalnie do dopełniania lewej lub prawej części ciągu:

SELECT LPAD('Cat', 20)
FROM DUAL;

Wynik:

         LPAD('CAT',20) 
_______________________ 
                 Cat    

W tym przypadku użyłem LPAD() zastosować lewe dopełnienie, a wynikowy ciąg ma 20 znaków, ponieważ tego użyłem dla drugiego argumentu.

Wynik jest uzupełniany spacją, ponieważ jest to domyślny znak używany do wypełniania. Jeśli nie określisz, jakim znakiem uzupełnić ciąg, zostanie użyta spacja.

Możesz dodać trzeci znak, aby określić, którego znaku użyć do wypełnienia:

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

Wynik:

   LPAD('7',3,'0') 
__________________ 
007               

W tym przypadku uzupełniłem liczbę zerami (chociaż wynikiem jest łańcuch).

Oracle ma również TO_CHAR(number) funkcja, której można użyć do dodawania wiodących zer do liczby:

SELECT TO_CHAR(7, 'fm000')
FROM DUAL;

Wynik:

007

0 element formatu reprezentuje każdą cyfrę w oryginalnej liczbie i zero, jeśli żadna cyfra nie istnieje w tej pozycji w oryginalnej liczbie.

PostgreSQL

PostgreSQL ma również własną LPAD() i RPAD() funkcje:

SELECT 
    LPAD('7', 3, '0') AS "Left Padding",
    RPAD('7', 3, '0') AS "Right Padding",
    LPAD(RPAD('7', 3, '0'), 5, '0') AS "Both";

Wynik:

 Left Padding | Right Padding | Both  
--------------+---------------+-------
 007          | 700           | 00700

Ma też swój własny TO_CHAR() funkcja, która działa podobnie do funkcji Oracle o tej samej nazwie:

SELECT TO_CHAR(7, 'fm000');

Wynik:

007

MariaDB

MariaDB ma własną LPAD() i RPAD() funkcje:

SELECT 
    LPAD('7', 3, '0') AS "Left Padding",
    RPAD('7', 3, '0') AS "Right Padding",
    LPAD(RPAD('7', 3, '0'), 5, '0') AS "Both";

Wynik:

+--------------+---------------+-------+
| Left Padding | Right Padding | Both  |
+--------------+---------------+-------+
| 007          | 700           | 00700 |
+--------------+---------------+-------+

I chociaż MariaDB ma swoją własną TO_CHAR() funkcja, nie działa na liczbach (ogranicza się do wartości datetime).

MySQL

MySQL ma również własną LPAD() i RPAD() funkcje.

Oto przykład użycia LPAD() względem kolumny bazy danych:

SELECT Genre, LPAD(Genre, 10, '.')
FROM Genres;

Wynik:

+---------+----------------------+
| Genre   | LPAD(Genre, 10, '.') |
+---------+----------------------+
| Rock    | ......Rock           |
| Jazz    | ......Jazz           |
| Country | ...Country           |
| Pop     | .......Pop           |
| Blues   | .....Blues           |
| Hip Hop | ...Hip Hop           |
| Rap     | .......Rap           |
| Punk    | ......Punk           |
+---------+----------------------+

Serwer SQL

SQL Server jest trochę anomalią, ponieważ nie ma funkcji LPAD() lub RPAD() funkcja.

Jednak SQL Server ma funkcję FORMAT() funkcja, która pozwala nam łatwo uzupełniać liczby wiodącymi zerami:

SELECT FORMAT(7, '000');

Wynik:

007

Drugi argument to niestandardowy ciąg formatu liczbowego, który określa, ile znaków będzie miał wynikowy ciąg. Fakt, że użyłem zer, oznacza, że ​​w razie potrzeby wynik będzie miał wiodące zera.

Aby uzupełnić ciągi w SQL Server, możemy zrobić coś takiego:

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

Wynik:

....Cat

Istnieje wiele innych technik, których możemy użyć do zastosowania dopełnienia w SQL Server.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Składnia Java z MongoDB

  2. Nie chcę zaczynać mongod od `sudo mongod`

  3. 5 sposobów na wybranie wierszy o minimalnej wartości dla ich grupy w SQL

  4. Zrób coś, jeśli nic nie zostanie znalezione za pomocą .find() mangusta

  5. DB z najlepszą wydajnością insertów/s?