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-Key: 375654

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

Printed on: April 25, 2024 at 22:04 o'clock

Member: em-pie
Solution em-pie May 31, 2018 updated at 18:18:42 (UTC)
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
Member: it-frosch
it-frosch Jun 01, 2018 at 06:09:56 (UTC)
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