it-frosch
Goto Top

MSSQL 2008 R2 - Textfeld nach Inhalt eines anderen Feldes durchsuchen

Guten Abend,

ich für alle Datensätze einer Tabelel prüfen ob in einem langen Textfeld (Matchcode) irgendwo der Inhalt des Felds Typnummer (Integer) des Datensatzes vorkommt.

Um es bildlich zu machen.

Typnummer Matchcode
815 Hier steht ein Haufen langtext und u.U. auch der Typ 815 drin.

Ich möchte alle Datensätze ermitteln bei denen der Matchcode nicht den Inhalt des Felds Typnummer enthält.

Da ich MSSQL 2008 R2 habe, kann ich nicht auf CONCAT zurückgreifen.

Das war mein letzter Versuch

select len(matchcode),count(*) from Tabelle where len(matchcode)>62 and (inaktiv=0 or inaktiv=null)
and matchcode not like ''%'+cast(typnummer as varchar)+'%''  
group by len(matchcode) order by 1 desc

und der brachte auch nur:
DataAdapter konnte nicht initialisiert werden:
The data types varchar and varchar are incompatible in the modulo operator.

Für jeden Denkanstoß bin ich wie immer dankbar.

grüße vom it-frosch

Content-ID: 375654

Url: https://administrator.de/contentid/375654

Ausgedruckt am: 03.12.2024 um 17:12 Uhr

em-pie
Lösung em-pie 31.05.2018 aktualisiert um 20:18:42 Uhr
Goto Top
Moin,

hats du es mal mit CHARINDEX() versucht?

select len(matchcode),count(*) from Tabelle where len(matchcode)>62 and (inaktiv=0 or inaktiv=null)
and charindex(typnummer, matchcode) > 0
group by len(matchcode) order by 1 desc

Habe selbst aber damit noch nicht gearbeitet...

Gruß
em-pie
it-frosch
it-frosch 01.06.2018 um 08:09:56 Uhr
Goto Top
Hi em-pie,

super Befehl. Der ist fix und bringt mir genau die Aussage, die ich benötige. face-smile

select len(matchcode),count(*) from Tabelle where len(matchcode)>62 and (inaktiv=0 or inaktiv=null) 
and charindex(cast(typnummer as varchar), matchcode) > 0 
group by len(matchcode) order by 1 desc

Danke dir.

grüße vom it-frosch