Oh, sorry da hab ich eine Information unterschlagen...
MSSQL 2008R
Mandant='-1', Belegart=*', Formularvariante='USA'
Mandant='-1', Belegart='VVA', Formularvariante='*'
Mandant='17', Belegart='*', Formularvariante='*'
Mandant='17', Belegart='*', Formularvariante='USA'
Die würden eigentlich alle auf das obige Beispiel passen.
Zurück möchte ich die letzte Zeile, da hier zwei Werte genau treffen.
Wenn die letzte Zeile aus der Konfiguration entfernt wird, trifft Formularvariante='USA'
Ich glaub ich habs jetzt:
SELECT DISTINCT
HCLiefTermTagesgenau,HCLiefDatKopf,HCUserVersandIstTermin,HCZolltarif,
HCPraefixBelegNr,HCBezugMitLiefertermin,HCLagerPlatzDruck,HCTerminUntrdruecken
FROM ITCDruckSteuerung
WHERE (REPLACE(Mandant, -1, 17) = 17)
AND (REPLACE(Datenbank, '*', 'MeineDB') ='MeineDB')
AND ('VVA' LIKE REPLACE(Belegkennzeichen, '*', '%')
AND (REPLACE(Formular, '*', 'USA') = 'USA')
AND (FixerText<>'---')
ORDER BY Mandant + LEN(Datenbank) + LEN(Belegkennzeichen) + LEN(Formular)
Das mit der Gewichtung ist zwar dann nicht mehr so ganz echt, aber damit kann ich leben.