По-долу са дадени примери за добавяне на водеща нула към число в SQL, като се използват различни СУБД.
Оракул
Oracle има TO_CHAR(number)
функция, която ни позволява да добавяме водещи нули към число. Той връща резултата си като низ в посочения формат.
SELECT TO_CHAR(7, '000')
FROM DUAL;
Резултат:
007
0
Елементът format е това, което извежда водещите нули. Ако не искаме водещи нули, бихме могли да използваме 9
.
Ето сравнение между 0
и 9
за да демонстрирам какво имам предвид:
SELECT
TO_CHAR(1234.456, '000G000D00') AS "0",
TO_CHAR(1234.456, '999G999D99') AS "9"
FROM DUAL;
Резултат:
0 9 ______________ ______________ 001 234,46 1 234,46
G
е за разделителя на групата и D
е за десетичния разделител. Вижте този списък с елементи на числови формат за пълен списък.
Oracle също има LPAD()
функция, която ни позволява да добавим число с водещи нули (или всеки друг знак). Вижте 2 начина за форматиране на число с водещи нули в Oracle за пример.
PostgreSQL
PostgreSQL също има TO_CHAR()
функция и работи като едноименната функция на Oracle:
SELECT TO_CHAR(7, '000');
Резултат:
007
И ето сравнение между 0
и 9
:
SELECT
TO_CHAR(1234.456, '000G000D00') AS "0",
TO_CHAR(1234.456, '999G999D99') AS "9";
Резултат:
<преди> 0 | 9 -------------+------------ 001 234,46 | 1 234,46Вижте Шаблони и модификатори за числово форматиране в Postgres за пълен списък с шаблони, които могат да се използват с тази функция в PostgreSQL.
Подобно на Oracle, PostgreSQL също има LPAD()
функция, която ни позволява да добавяме числа с водещи нули. Вижте 2 начина за добавяне на водещи нули в PostgreSQL за пример.
MySQL
MySQL има LPAD()
функция, която ни позволява да добавим лявата част на низ или число с избрания от нас знак или поредица от знаци. Следователно можем да го използваме, за да допълним нашия номер с нули:
SELECT LPAD(7, 3, 0);
Резултат:
007
За щастие можем да предадем числото като числов тип, така че няма нужда първо да го преобразуваме в низ.
Вижте Как да добавите водещи нули към число в MySQL за повече.
MariaDB
Подобно на MySQL, MariaDB също има LPAD()
функция, която ни позволява да добавим лявата част на низ или число с избрания от нас знак или поредица от знаци:
SELECT LPAD(7, 3, 0);
Резултат:
007
И както при MySQL, можем да предадем числото като числов тип, така че няма нужда първо да го преобразуваме в низ.
Вижте Как да добавите число с водещи нули в MariaDB за повече.
SQL сървър
SQL Server има FORMAT()
функция, която ни позволява да форматираме числа с помощта на форматиращ низ:
SELECT FORMAT(7, '000');
Резултат:
007
Ето го с разделител на група и десетичен разделител:
SELECT FORMAT(1234, '0,000.00');
Резултат:
1234,00
Вижте Добавяне на водещи и крайни нули в SQL Server за повече.
SQLite
SQLite има PRINTF()
функция, която може да се използва за добавяне на водещи нули към число:
SELECT PRINTF('%03d', 7);
Резултат:
007
Вижте Как да форматирате числа с водещи нули в SQLite за обяснение.
Актуализиране :SQLite 3.38.0 (издадена на 22 февруари 2022 г.) преименува PRINTF()
функция към FORMAT()
. Оригиналният PRINTF()
името се запазва като псевдоним за обратна съвместимост.
Така че горният пример може да бъде променен на това:
SELECT FORMAT('%03d', 7);
Резултат:
007