Discussion:
Alleen numeriek en evt. opvullen met voorloopnullen
(te oud om op te antwoorden)
Kluifel
2008-12-16 09:55:03 UTC
Permalink
Hallo,

Ik ben op zoek naar een SQL-formule waarbij van een veld in de Exact-
database alleen de cijfers en niet de letters worden getoond. Zijn
het
dan ook nog minder dan 9 cijfers, dan moet die links opgevuld worden
met voorloopnullen. Dit is de maximale lengte van BSN (sofinr).
Zijn het meer dan 9 cijfers, dan moet die 'gewoon' alle cijfers
tonen.


Bijvoorbeeld:
"Naam 123456" moet dan worden "000123456",
"123456789 Naam" moet dan worden "123456789"
"456789" moet dan worden "000456789"
"012345678910" moet dan worden (of liever gezegd blijven)
"012345678910"


B.v.d.
Hugo Kornelis
2008-12-17 21:45:11 UTC
Permalink
Post by Kluifel
Hallo,
Ik ben op zoek naar een SQL-formule waarbij van een veld in de Exact-
database alleen de cijfers en niet de letters worden getoond. Zijn
het
dan ook nog minder dan 9 cijfers, dan moet die links opgevuld worden
met voorloopnullen. Dit is de maximale lengte van BSN (sofinr).
Zijn het meer dan 9 cijfers, dan moet die 'gewoon' alle cijfers
tonen.
"Naam 123456" moet dan worden "000123456",
"123456789 Naam" moet dan worden "123456789"
"456789" moet dan worden "000456789"
"012345678910" moet dan worden (of liever gezegd blijven)
"012345678910"
B.v.d.
Beste Kluifel,

Heb je altijd een van de patronen "<letters><spatie><cijfers>",
"<cijfers><spatie><letters>", of "<cijfers>"? Of kan je bijvoorbeeld
ook zoiets hebben als "Fiets 12345 Auto", of zelfs "a1b2c3d4e5f"? En
moet in beide hiervoor genoemde gevallen het resultaat "000012345"
worden?

En welke versie van SQL Server gebruik je?
--
Hugo Kornelis, SQL Server MVP
My SQL Server blog: http://sqlblog.com/blogs/hugo_kornelis
Kluifel
2009-01-08 09:00:55 UTC
Permalink
Post by Hugo Kornelis
Post by Kluifel
Hallo,
Ik ben op zoek naar een SQL-formule waarbij van een veld in de Exact-
database alleen de cijfers en niet de letters worden getoond. Zijn
het
dan ook nog minder dan 9 cijfers, dan moet die links opgevuld worden
met voorloopnullen. Dit is de maximale lengte van BSN (sofinr).
Zijn het meer dan 9 cijfers, dan moet die 'gewoon' alle cijfers
tonen.
"Naam 123456" moet dan worden "000123456",
"123456789 Naam" moet dan worden "123456789"
"456789" moet dan worden "000456789"
"012345678910" moet dan worden (of liever gezegd blijven)
"012345678910"
B.v.d.
Beste Kluifel,
Heb je altijd een van de patronen "<letters><spatie><cijfers>",
"<cijfers><spatie><letters>",  of "<cijfers>"? Of kan je bijvoorbeeld
ook zoiets hebben als "Fiets 12345 Auto", of zelfs "a1b2c3d4e5f"? En
moet in beide hiervoor genoemde gevallen het resultaat "000012345"
worden?
En welke versie van SQL Server gebruik je?
--
Hugo Kornelis, SQL Server MVP
My SQL Server blog:http://sqlblog.com/blogs/hugo_kornelis- Tekst uit oorspronkelijk bericht niet weergeven -
- Tekst uit oorspronkelijk bericht weergeven -
Ik heb het even nagevraagd bij onze afdeling ICT: versie 7.0
Hugo Kornelis
2009-01-08 22:28:48 UTC
Permalink
Post by Kluifel
Post by Hugo Kornelis
Beste Kluifel,
Heb je altijd een van de patronen "<letters><spatie><cijfers>",
"<cijfers><spatie><letters>",  of "<cijfers>"? Of kan je bijvoorbeeld
ook zoiets hebben als "Fiets 12345 Auto", of zelfs "a1b2c3d4e5f"? En
moet in beide hiervoor genoemde gevallen het resultaat "000012345"
worden?
En welke versie van SQL Server gebruik je?
--
Hugo Kornelis, SQL Server MVP
My SQL Server blog:http://sqlblog.com/blogs/hugo_kornelis- Tekst uit oorspronkelijk bericht niet weergeven -
- Tekst uit oorspronkelijk bericht weergeven -
Ik heb het even nagevraagd bij onze afdeling ICT: versie 7.0
Beste Kluifel,

Oké, dat is één van de gevraagde antwoorden. Nu de anderen nog, dan kan
ik kijken wat een goede oplossing voor je probleem is. :)
--
Hugo Kornelis, SQL Server MVP
My SQL Server blog: http://sqlblog.com/blogs/hugo_kornelis
Kluifel
2009-01-16 14:28:01 UTC
Permalink
Post by Hugo Kornelis
Post by Kluifel
Post by Hugo Kornelis
Beste Kluifel,
Heb je altijd een van de patronen "<letters><spatie><cijfers>",
"<cijfers><spatie><letters>",  of "<cijfers>"? Of kan je bijvoorbeeld
ook zoiets hebben als "Fiets 12345 Auto", of zelfs "a1b2c3d4e5f"? En
moet in beide hiervoor genoemde gevallen het resultaat "000012345"
worden?
En welke versie van SQL Server gebruik je?
--
Hugo Kornelis, SQL Server MVP
My SQL Server blog:http://sqlblog.com/blogs/hugo_kornelis-Tekst uit oorspronkelijk bericht niet weergeven -
- Tekst uit oorspronkelijk bericht weergeven -
Ik heb het even nagevraagd bij onze afdeling ICT: versie 7.0
Beste Kluifel,
Oké, dat is één van de gevraagde antwoorden. Nu de anderen nog, dan kan
ik kijken wat een goede oplossing voor je probleem is. :)
--
Hugo Kornelis, SQL Server MVP
My SQL Server blog:http://sqlblog.com/blogs/hugo_kornelis- Tekst uit oorspronkelijk bericht niet weergeven -
- Tekst uit oorspronkelijk bericht weergeven -
Sorry, te snel gehandeld.
Alleen de cijfers moeten getoond worden.
Zijn het er dan minder dan 9 dan moeten ze links opgevuld worden met
voorloopnullen.

B.v.d.
Hugo Kornelis
2009-01-16 21:00:41 UTC
Permalink
On Fri, 16 Jan 2009 06:28:01 -0800 (PST), Kluifel wrote:

(knip)
Post by Kluifel
Sorry, te snel gehandeld.
Alleen de cijfers moeten getoond worden.
Zijn het er dan minder dan 9 dan moeten ze links opgevuld worden met
voorloopnullen.
Hoi Kluifel,

Ja, dat was in de eerst post ook al duidelijk. Ik wacht nog steeds op
antwoord op deze vraag:

On Wed, 17 Dec 2008 22:45:11 +0100, Hugo Kornelis wrote:

(...)
Post by Kluifel
Heb je altijd een van de patronen "<letters><spatie><cijfers>",
"<cijfers><spatie><letters>", of "<cijfers>"? Of kan je bijvoorbeeld
ook zoiets hebben als "Fiets 12345 Auto", of zelfs "a1b2c3d4e5f"? En
moet in beide hiervoor genoemde gevallen het resultaat "000012345"
worden?
En als aanvullende vraag wil ik ook graag weten wat er moet gebeuren als
er meer dan 9 cijfers in het patroon staan.


Oh, en nog wat. SQL Server 7.0 is al een hele oude versie, waar al een
aantal jaren geen support meer op gegeven wordt door Microsoft. Ik raad
jou (of eigenlijk de ICT afdeling van je bedrijf) aan om binnenkort toch
eens een upgrade te plannen. De nieuwste versie is SQL Server 2008, die
nu bijna een jaar op de markt is. Die is in vele opzichten beter dan de
7.0 versie die jullie nu hebben.
--
Hugo Kornelis, SQL Server MVP
My SQL Server blog: http://sqlblog.com/blogs/hugo_kornelis
Kluifel
2009-01-21 12:57:18 UTC
Permalink
Post by Hugo Kornelis
(knip)
Post by Kluifel
Sorry, te snel gehandeld.
Alleen de cijfers moeten getoond worden.
Zijn het er dan minder dan 9 dan moeten ze links opgevuld worden met
voorloopnullen.
Hoi Kluifel,
Ja, dat was in de eerst post ook al duidelijk. Ik wacht nog steeds op
(...)
Post by Kluifel
Heb je altijd een van de patronen "<letters><spatie><cijfers>",
"<cijfers><spatie><letters>",  of "<cijfers>"? Of kan je bijvoorbeeld
ook zoiets hebben als "Fiets 12345 Auto", of zelfs "a1b2c3d4e5f"? En
moet in beide hiervoor genoemde gevallen het resultaat "000012345"
worden?
En als aanvullende vraag wil ik ook graag weten wat er moet gebeuren als
er meer dan 9 cijfers in het patroon staan.
Oh, en nog wat. SQL Server 7.0 is al een hele oude versie, waar al een
aantal jaren geen support meer op gegeven wordt door Microsoft. Ik raad
jou (of eigenlijk de ICT afdeling van je bedrijf) aan om binnenkort toch
eens een upgrade te plannen. De nieuwste versie is SQL Server 2008, die
nu bijna een jaar op de markt is. Die is in vele opzichten beter dan de
7.0 versie die jullie nu hebben.
--
Hugo Kornelis, SQL Server MVP
My SQL Server blog:http://sqlblog.com/blogs/hugo_kornelis
Dan 'gewoon' alle cijfers, dus meer dan 9.
Bedankt voor de tip. Ik zal het ICT doorgeven
Hugo Kornelis
2009-01-28 23:07:48 UTC
Permalink
Post by Kluifel
Post by Hugo Kornelis
(knip)
Post by Kluifel
Sorry, te snel gehandeld.
Alleen de cijfers moeten getoond worden.
Zijn het er dan minder dan 9 dan moeten ze links opgevuld worden met
voorloopnullen.
Hoi Kluifel,
Ja, dat was in de eerst post ook al duidelijk. Ik wacht nog steeds op
(...)
Post by Kluifel
Heb je altijd een van de patronen "<letters><spatie><cijfers>",
"<cijfers><spatie><letters>",  of "<cijfers>"? Of kan je bijvoorbeeld
ook zoiets hebben als "Fiets 12345 Auto", of zelfs "a1b2c3d4e5f"? En
moet in beide hiervoor genoemde gevallen het resultaat "000012345"
worden?
En als aanvullende vraag wil ik ook graag weten wat er moet gebeuren als
er meer dan 9 cijfers in het patroon staan.
Oh, en nog wat. SQL Server 7.0 is al een hele oude versie, waar al een
aantal jaren geen support meer op gegeven wordt door Microsoft. Ik raad
jou (of eigenlijk de ICT afdeling van je bedrijf) aan om binnenkort toch
eens een upgrade te plannen. De nieuwste versie is SQL Server 2008, die
nu bijna een jaar op de markt is. Die is in vele opzichten beter dan de
7.0 versie die jullie nu hebben.
--
Hugo Kornelis, SQL Server MVP
My SQL Server blog:http://sqlblog.com/blogs/hugo_kornelis
Dan 'gewoon' alle cijfers, dus meer dan 9.
Bedankt voor de tip. Ik zal het ICT doorgeven
Hoi Kluifel,

Sorry voor de late reactie. Ik had eerst nog een paar dagen gewacht in
de hoop dat je mijn andere vraag nog zou beantwoorden, en daarna werd
het nogal druk.

SELECT CASE WHEN LEN(AlleenCijfers) >= 9
THEN AlleenCijfers
ELSE RIGHT('000000000' + AlleenCijfers, 9)
END AS Opgemaakt
FROM (SELECT SUBSTRING(' ' + Veld + ' ',
PATINDEX('% [0-9]%', ' ' + Veld + ' ') + 1,
PATINDEX('%[0-9] %', ' ' + Veld + ' ') -
PATINDEX('% [0-9]%', ' ' + Veld + ' ')) AS AlleenCijfers
FROM Tabel) AS x;

Deze code gaat ervan uit dat er één reeks cijfers in de tekst staat,
gescheiden van andere tekens door één of meer spaties.
--
Hugo Kornelis, SQL Server MVP
My SQL Server blog: http://sqlblog.com/blogs/hugo_kornelis
Loading...