sql >> Database teknologi >  >> RDS >> Mysql

LPAD med indledende nul

Jeg synes, du skal overveje, at de retningslinjer, du læser, gælder for, hvordan en faktura skal vises , og ikke hvordan det skal opbevares i databasen.

Når et tal er gemt som et INT, er det et rent tal. Hvis du tilføjer nuller foran og gemmer det igen, er det stadig det samme tal.

Du kan vælge NUMER-feltet som følger eller oprette en visning for den tabel:

SELECT LPAD(NUMER,6,'0') AS NUMER
FROM ...

Eller i stedet for at ændre dataene, når du vælger dem fra databasen, kan du overveje at udfylde tallet med nuller, når du viser det, og kun når du viser det.

Jeg tror, ​​at dit krav om, at historiske data skal forblive det samme, er et problem. Selv for historiske data er en faktura nummereret 001203 den samme som en faktura nummereret 1203.

Men hvis du absolut skal gøre det som du beskriver, så kan konvertering til et VARCHAR-felt fungere. Konverterede historiske data kan gemmes som de er, og alle nye indtastninger kan udfyldes til det nødvendige antal nuller. Men det anbefaler jeg ikke.



  1. Er det muligt at udføre krydsdatabaseforespørgsler med PostgreSQL?

  2. Fejlkode:1822. Kunne ikke tilføje den fremmede nøglebeholder. Manglende indeks for begrænsning

  3. Hibernate:hvad er forskellen mellem MySQLDialect og MySQLInnoDBDialect?

  4. Indstil grænse for en tabelrækker i SQL