Al een groot aantal uurtjes loop ik tegen het volgende probleem aan.
Ik wil graag een kolom met daarin een artikelcode [AR_ARTICLECODE] van het type char opvullen met een aantal nullen zodat ik in elke kolom een veldgrootte van 7 krijg. In die velden kunnen 4 getallen staan maar ook 6 of 7. Variabel dus.
Ik heb gelezen dat bovenstaand gemakkelijk kan worden gemaakt in de presentatie laag dus in het programma of website. Het script wat ik maak moet zorgen voor een fatsoenlijk ordening het artikelcode en gaat gebruikt in een grote applicatie en dit word op veel plaatsen toegepast. Het is dus niet erg netjes om steeds de zelfde code overal neer te plakken. Vandaar het idee om dit in de SQL 2005 database te doen.
Het idee is alsvolgt:
Het opvragen van de grootte kan met len(kolomnaam). Dat is het probleem niet. Ik heb meer problemen met het kiezen van een geschikte volgorde van werken en het opvullen met het variabele aantal nullen.
Ik dacht aan een while loop of een end if loop maar met mijn huidige code wil dat niet helemaal samen werken.
Dit werkt helaas niet. Ik heb al vele manieren geprobeerd en gegoogled maar ergens in mijn denkpatroon gaat er wat mis. Misschien dat iemand me een idee kan geven?
Ik wil graag een kolom met daarin een artikelcode [AR_ARTICLECODE] van het type char opvullen met een aantal nullen zodat ik in elke kolom een veldgrootte van 7 krijg. In die velden kunnen 4 getallen staan maar ook 6 of 7. Variabel dus.
Ik heb gelezen dat bovenstaand gemakkelijk kan worden gemaakt in de presentatie laag dus in het programma of website. Het script wat ik maak moet zorgen voor een fatsoenlijk ordening het artikelcode en gaat gebruikt in een grote applicatie en dit word op veel plaatsen toegepast. Het is dus niet erg netjes om steeds de zelfde code overal neer te plakken. Vandaar het idee om dit in de SQL 2005 database te doen.
Het idee is alsvolgt:
code:
1
2
3
4
5
| - bekijk welke velden in de kolom kleiner zijn dan 7 - loop door die velden en vul ze op een 0 totdat ze een veldgrootte van 7 hebben - update de tabel met de juiste waarden Alle velden moeten nu 7 groot zijn |
Het opvragen van de grootte kan met len(kolomnaam). Dat is het probleem niet. Ik heb meer problemen met het kiezen van een geschikte volgorde van werken en het opvullen met het variabele aantal nullen.
Ik dacht aan een while loop of een end if loop maar met mijn huidige code wil dat niet helemaal samen werken.
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| -- Declare the variable to be used. DECLARE @MaxSize int -- Initialize the variable. SET @MaxSize = 7; -- Begin query SELECT AR_ARTICLECODE, LEN(AR_ARTICLECODE) AS LENGTH FROM CFG_ARTICLE WHERE AR_ARTICLECODE < @MaxSize WHILE LEN(AR_ARTICLECODE) < @MaxSize BEGIN UPDATE CFG_ARTICLE.AR_ARTICLECODE SET AR_ARTICLECODE = 0 + AR_ARTICLECODE END |
Dit werkt helaas niet. Ik heb al vele manieren geprobeerd en gegoogled maar ergens in mijn denkpatroon gaat er wat mis. Misschien dat iemand me een idee kan geven?
[ Voor 0% gewijzigd door Arethusa op 29-09-2006 14:40 . Reden: Aanpassing script ]
I've been mad for fucking years, absolutely years, been over the edge for yonks.
Vinyl: Discogs