MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Допълване в SQL

Някои RDBMS предоставят LPAD() и RPAD() функция, която ни позволява да допълним низ или десен тампон. Някои функции също ни позволяват да добавяме начални или крайни нули числа.

По-долу са дадени примери за прилагане на SQL padding в някои от по-популярните RDBMS.

Оракул

Oracle ни предоставя LPAD() и RPAD() специално за допълване на лявата или дясната част на низ:

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

Резултат:

         LPAD('CAT',20) 
_______________________ 
                 Cat    

В този случай използвах LPAD() за да приложите ляв допълване и полученият низ е 20 знака, защото това използвах за втория аргумент.

Резултатът се допълва с интервал, защото това е символът по подразбиране, използван за допълване. Ако не посочите с кой знак да подпълните низа, се използва интервал.

Можете да добавите трети знак, за да посочите кой знак да използвате за допълването:

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

Резултат:

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

В този случай допълних число с нули (въпреки че резултатът е низ).

Oracle също има TO_CHAR(number) функция, която може да се използва за добавяне на водещи нули към число:

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

Резултат:

007

0 Елементът format представлява всяка цифра в оригиналното число и нула, ако не съществува цифра на тази позиция в оригиналното число.

PostgreSQL

PostgreSQL също има свой собствен LPAD() и RPAD() функции:

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

Резултат:

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

Освен това има свой собствен TO_CHAR() функция, която работи подобно на едноименната функция на Oracle:

SELECT TO_CHAR(7, 'fm000');

Резултат:

007

MariaDB

MariaDB има свой собствен LPAD() и RPAD() функции:

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

Резултат:

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

И докато MariaDB има свой собствен TO_CHAR() функция, тя не работи върху числа (ограничена е до стойности за дата и час).

MySQL

MySQL също има свой собствен LPAD() и RPAD() функции.

Ето пример за използване на LPAD() срещу колона от база данни:

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

Резултат:

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

SQL сървър

SQL Server е малко аномалия, тъй като няма LPAD() или RPAD() функция.

Въпреки това SQL Server има FORMAT() функция, която ни позволява лесно да добавяме числа с водещи нули:

SELECT FORMAT(7, '000');

Резултат:

007

Вторият аргумент е низ с персонализиран цифров формат, който определя колко знака ще има полученият низ. Фактът, че използвах нули, означава, че резултатът ще има водещи нули, ако е необходимо.

За да добавим низове в SQL Server, можем да направим нещо подобно:

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

Резултат:

....Cat

Има различни други техники, които можем да използваме за прилагане на запълване в SQL Server.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да изброя всички бази данни MongoDB в Node.js?

  2. Вмъкването на Mongodb/mongoose не е функция

  3. Въведение в Morphia – Java ODM за MongoDB

  4. Проектирайте първия елемент в масива към ново поле (обединяване на MongoDB)

  5. използвайки низ за mongodb _id