Toon posts:

[SQL] Teken toevoegen aan bestaande kolom

Pagina: 1
Acties:
  • 432 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Na het invoeren van een zeer groot aantal id's (type varchar) in Postgres is
er achteraf het verzoek gekomen om elke id te laten beginnen met een 0.
12345 -> 012345

Nu vroeg ik mij af of dit met SQL kan en waar ik dan naar moeten zoeken, voor als nog
zie ik mijn enige oplossing in php script of handmatig 8)7

Wie kan er mij op weg helpen,

Alvast bedankt

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Zijn die id's allemaal en altijd getallen? Zoja, waarom varchar?
En het lijkt me een gevalletje presentatie, dat moet je dus niet oplossen op dataniveau. Dus gewoon een of andere format-functie gebruiken.

edit:
Hoe kom ik op PHP? 8)7

[ Voor 14% gewijzigd door kenneth op 12-07-2006 11:48 ]

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ik zou beginnen met dat verzoek ter discussie stellen. De weergave van een getal en of voorloopnullen lijkt me niet een zaak voor (een id kolom van) een database.

Dat het een VARCHAR kolom is, is ook wat vreemd.

Je kunt het overigens eenvoudig doen:

UPDATE tabel
SET kolom = '0' + kolom

(of bijv. || als teken om strings te concatten, dat moet je even opzoeken)

Oops! Google Chrome could not find www.rijks%20museum.nl


  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 22-12-2025

PhysicsRules

Dux: Linux voor Eenden

Het lijkt me sowieso onverstandig om ID's te veranderen. Als de gebruiker behoefte heeft aan een ID, gebruik dan een ander ID dan de unique-key id van de row. Dit is een mooi moment om die toe te voegen.

Verwijderd

Topicstarter
UPDATE uitvoering SET artikelnummer = '0' || artikelnummer; werkt inderdaad...

Even toelichten, het is wel een id maar niet de primary key.. het wordt gebruikt voor bijvoorbeeld op de bon..

Bedankt voor de tips !

  • DND_Roche
  • Registratie: Juli 2006
  • Laatst online: 02-01-2024
Eventueel kun je nog nadenken over het gebruik van LPAD. Daarmee kun je de velden aanvullen met nullen tot een gedefinieerd aantal tekens.

Gebruik: Update <tabel> Set <kolom> = LPAD( <kolom>, 10, '0');

Dit zal de waarde van <kolom> aanvullen met 0 zodat deze 10 lang wordt.
Werkt voor 123 -> 0000000123
en 12345678 -> 0012345678

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Verwijderd schreef op woensdag 12 juli 2006 @ 12:59:
UPDATE uitvoering SET artikelnummer = '0' || artikelnummer; werkt inderdaad...

Even toelichten, het is wel een id maar niet de primary key.. het wordt gebruikt voor bijvoorbeeld op de bon..

Bedankt voor de tips !
Wat ga je doen als ze nog een nul willen? Je had dit beter op presentatie niveau af kunnen handelen. Maargoed, dit is wel makkelijker ja :z ;)

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.

Pagina: 1