[MSSQL] LIKE liefert nicht alle Ergebnisse

Fragenfrager

Erfahrenes Mitglied
Hallo liebes Forum,

mir liegt eine Tabelle mit (vereinfacht) folgendem Aufbau vor:
BenutzerName | OeSelection

In "OeSelection" stehen mehrere Oragenisationseinheiten (Oe), auf die der Benutzer Zugriff haben darf. Diese sind durch ~voneinander getrennt (Ich weiss, das ist mies gelöst, aber ich kann an der DB ncihts ändern).
Somit wäre ein ein Eintrag:
testuser | 355~324~332~331~327~328~329~326~325~323~358~419~356~335~322~333~334~330~319~320~321~357~

Ich will nun alle User ermitteln, die auf eine bestimmte OE-Nummer zugreifen.
Die Abfrage dazu ist:
SQL:
SELECT
BenutzerName 
FROM 
Benutzer 
where ('~'+cast(OeSelection as varchar)LIKE ('%~326~%')) ORDER BY BenutzerName
Bei den ersten Nummern (355,324,332,331,327,328,329) funktioniert das, ab der Nummer 326 bekomme ich den testuser nicht mehr angezeigt.
Bei dem Eintrag
testuser2 | 324~326~325~323~322~
erhalte ich ein Ergebnis.
Hat hier jemand eine Idee?
 
Hah! Durch ein alte Handbuch habe ich es gefunden.
Die Umwandlung in "AS VARCHAR hat die Zeichenkette gekürzt.
Mit
SQL:
SELECT
BenutzerName 
FROM 
Benutzer 
WHERE ('~'+CAST(OeSelection AS VARCHAR(800))LIKE ('%~326~%')) ORDER BY BenutzerName
klappt es. Danke für's lesen.
 

Neue Beiträge

Zurück