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

SQL LPAD()

В SQL, LPAD() е често използвана функция, която допълва лявата част на низ с определен символ. Функцията може да се използва за низове и числа, въпреки че в зависимост от СУБД, може да се наложи числата да се предават като низ, преди да могат да бъдат допълнени.

СУБД, които имат LPAD() функция включва MySQL, MariaDB, PostgreSQL и Oracle.

СУБД, които не имат LPAD() функция включва SQL Server и SQLite (въпреки че има и други начини за прилагане на лявото допълване в тези СУБД).

Пример

Ето пример, за да демонстрирате как да използвате LPAD() във вашия SQL код:

SELECT LPAD('Look Left', 20); 

Резултат:

<пред>+-----------------------+| LPAD('Поглед наляво', 20) |+-----------------------+| Погледнете наляво |+-----------------------+

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

Oracle работи по същия начин, но трябва да използваме FROM DUAL когато правите заявка като тази (без заявка към действителна таблица):

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

Резултат:

 LPAD('LOOKLEFT',20) _______________________ Погледнете наляво 

Посочете символ за подреждане

Подпълването не е задължително да е място. Можем по избор да добавим трети аргумент, за да посочим знака (или знаците), които да използваме в допълването.

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

Резултат:

007

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

В някои СУБД (като MariaDB и MySQL) можем да предадем числото като число, както и числото, с което да го добавим:

SELECT LPAD(7, 3, 0); 

Резултат:

007

Можем да направим това и в Oracle:

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

Резултат:

007

Но PostgreSQL има проблем с това:

SELECT LPAD(7, 3, 0); 

Резултат:

ГРЕШКА:функция lpad(цяло число, цяло число, цяло число) не съществува

SQL сървър

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

SELECT FORMAT(7, '000'); 

Резултат:

007

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

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

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

Резултат:

....Котка

Има и няколко други еквивалента на LPAD() в SQL Server.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. SCUMM:Инфраструктура за мониторинг на база данни, базирана на агенти в ClusterControl

  2. Как да премахна документи с помощта на Node.js Mongoose?

  3. MongoDb:намерете дълбоко вложен обект с $lookup

  4. (възел:3341) Предупреждение за прекратяване:Mongoose:mpromise

  5. Метеор без монго