sql >> Database >  >> RDS >> Mysql

LPAD met voorloopnul

Ik denk dat u er rekening mee moet houden dat de richtlijnen die u leest van toepassing zijn op hoe een factuur weergegeven moet worden , en niet hoe het moet worden opgeslagen in de database.

Wanneer een nummer wordt opgeslagen als een INT, is het een puur nummer. Als je vooraan nullen toevoegt en weer opslaat, is het nog steeds hetzelfde nummer.

U kunt het veld NUMER als volgt selecteren of een weergave voor die tabel maken:

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

Of, in plaats van de gegevens te wijzigen wanneer u deze uit de database selecteert, kunt u overwegen om het getal met nullen op te vullen wanneer u het weergeeft, en alleen wanneer u het weergeeft.

Ik denk dat uw vereiste dat historische gegevens hetzelfde blijven een betwistbaar punt is. Zelfs voor historische gegevens is een factuur met het nummer 001203 hetzelfde als een factuur met het nummer 1203.

Als u het echter absoluut moet doen op de manier die u beschrijft, kan het converteren naar een VARCHAR-veld werken. Geconverteerde historische gegevens kunnen worden opgeslagen zoals ze zijn, en nieuwe invoer kan worden opgevuld met het vereiste aantal nullen. Maar dat raad ik je niet aan.



  1. KRUIS/BUITEN TOEPASSEN in MySQL

  2. hoe te controleren of een string er willekeurig uitziet, of door mensen gegenereerd en uitspreekbaar is?

  3. Verwijzen naar een alias elders in de SELECT-lijst

  4. Verbinding maken met mysql vanuit C# via SSH