sql >> Database teknologi >  >> NoSQL >> MongoDB

Tilføj ledende nuller i SQL

Nedenfor er eksempler på tilføjelse af et indledende nul til et tal i SQL ved hjælp af forskellige DBMS'er.

Oracle

Oracle har en TO_CHAR(number) funktion, der giver os mulighed for at tilføje indledende nuller til et tal. Det returnerer sit resultat som en streng i det angivne format.

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

Resultat:

007

0 formatelementet er det, der udsender de foranstillede nuller. Hvis vi ikke ville have foranstillede nuller, kunne vi bruge 9 .

Her er en sammenligning mellem 0 og 9 for at demonstrere, hvad jeg mener:

SELECT 
    TO_CHAR(1234.456, '000G000D00') AS "0",
    TO_CHAR(1234.456, '999G999D99') AS "9"
FROM DUAL;

Resultat:

             0              9 
______________ ______________ 
 001,234.46       1,234.46    

G er for gruppeseparatoren og D er for decimaladskilleren. Se denne liste over talformatelementer for en komplet liste.

Oracle har også en LPAD() funktion, der gør det muligt for os at udfylde et tal med indledende nuller (eller et hvilket som helst andet tegn). Se 2 måder at formatere et tal med førende nuller i Oracle for et eksempel.

PostgreSQL

PostgreSQL har også en TO_CHAR() funktion, og den fungerer som Oracles funktion af samme navn:

SELECT TO_CHAR(7, '000');

Resultat:

007

Og her er en sammenligning mellem 0 og 9 :

SELECT 
    TO_CHAR(1234.456, '000G000D00') AS "0",
    TO_CHAR(1234.456, '999G999D99') AS "9";

Resultat:

      0      |      9      
-------------+-------------
  001,234.46 |    1,234.46

Se skabelonmønstre og modifikatorer til numerisk formatering i Postgres for en komplet liste over skabelonmønstre, der kan bruges med denne funktion i PostgreSQL.

Ligesom Oracle har PostgreSQL også en LPAD() funktion, der gør det muligt for os at udfylde tal med indledende nuller. Se 2 måder at tilføje førende nuller i PostgreSQL for et eksempel.

MySQL

MySQL har en LPAD() funktion, der giver os mulighed for at udfylde den venstre del af en streng eller et tal med vores valgte tegn eller serie af tegn. Derfor kan vi bruge det til at fylde vores tal med nuller:

SELECT LPAD(7, 3, 0);

Resultat:

007

Heldigvis kan vi videregive tallet som en numerisk type, så det er ikke nødvendigt at konvertere det til en streng først.

Se Sådan tilføjer du førende nuller til et tal i MySQL for mere.

MariaDB

Ligesom MySQL har MariaDB også en LPAD() funktion, der giver os mulighed for at fylde den venstre del af en streng eller et tal med vores valgte tegn eller serie af tegn:

SELECT LPAD(7, 3, 0);

Resultat:

007

Og ligesom med MySQL kan vi videregive nummeret som en numerisk type, så der er ingen grund til at konvertere det til en streng først.

Se Sådan udfyldes et tal med førende nuller i MariaDB for mere.

SQL-server

SQL Server har en FORMAT() funktion, der giver os mulighed for at formatere tal ved hjælp af en formatstreng:

SELECT FORMAT(7, '000');

Resultat:

007

Her er det med en gruppeseparator og decimalseparator:

SELECT FORMAT(1234, '0,000.00');

Resultat:

1,234.00

Se Tilføj førende og efterfølgende nuller i SQL Server for mere.

SQLite

SQLite har en PRINTF() funktion, der kan bruges til at tilføje indledende nuller til et tal:

SELECT PRINTF('%03d', 7);

Resultat:

007

Se Sådan formateres tal med foranstillede nuller i SQLite for en forklaring.

Opdater :SQLite 3.38.0 (frigivet 22. februar 2022) omdøbte PRINTF() funktion til FORMAT() . Den originale PRINTF() navnet bibeholdes som et alias for bagudkompatibilitet.

Så ovenstående eksempel kan ændres til dette:

SELECT FORMAT('%03d', 7);

Resultat:

007

  1. deling af IO-objekt i flere node-forekomster

  2. hvordan man gemmer et billede i redis ved hjælp af python / PIL

  3. Rescue Timeout::Fejl fra Redis Gem (Ruby)

  4. Gør noget, hvis der ikke findes noget med .find() mongoose