Was soll dieser Blödsinn?
(dec(case when artikelnr > '0'
then artikelnr else '0' end, 5, 0)

Dein Problem ist, dass die Dec-Umwandlung immer durchgeführt wird und zwar unabhängig ob der 2. Vergleich dann zieht oder nicht.
Wofür ist die Dec-Konvertierung denn überhaupt gut?
Da reicht doch auch ArtikelNr >= '0'!