stefan4711 3 Geschrieben 28. August 2020 Melden Teilen Geschrieben 28. August 2020 Hallo liebe Experten, ich habe mal eine kleine Frage. In meiner Archiv Datenbank existiert ein Feld Ob_F2, welches eine alphanumerische Kennung ethält und vom Typ (NVARCHAR(255),NULL) ist. Leider kommt es bei der Dateneingabe immer mal wieder vor, dass am Anfang, am Ende oder innerhalb des Strings Leerzeichen hineingeraten. Hat jemand eine Idee, wie ich diese Datensäte finden kann, es geht nur um das finden, mein Grundkonstrukt für die Abfrage sieht folgendermaßen aus: use DBArchiv select Ob_F2,B_intAbk,B_DatVon,B_DatBis,Ob_F1, Ob_f20,ob_f21 FROM M_Objekte1 INNER JOIN M_Bestaende ON M_Objekte1.B_ID = M_Bestaende.B_ID WHERE (Ob_f2 like '[ ]%' AND Ob_f2 like '%[ ]') OR Ob_f2 like '[ ]%' OR Ob_f2 like '%[ ]' order by B_intAbk Hier werden aber lediglich die Leerzeichen am Anfang oder Ende, bzw beides gefunden, wie kann ich also nun sämtliche Datensäte finden, an denenen in diesem Feld Leerzeichen enthalten sind? Für eine Antwort wäre ich sehr dank bar LG und ein schönes Wochenende Zitieren Link zu diesem Kommentar
mwiederkehr 373 Geschrieben 28. August 2020 Melden Teilen Geschrieben 28. August 2020 WHERE Ob_f2 LIKE '% %' geht nicht? Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 28. August 2020 Melden Teilen Geschrieben 28. August 2020 Moin, %[ ]% geht nicht? Sonst könnte man versuchen: ... WHERE CHARINDEX(' ', FELDNAME) > 0 Gruß, Nils Zitieren Link zu diesem Kommentar
stefan4711 3 Geschrieben 29. August 2020 Autor Melden Teilen Geschrieben 29. August 2020 cool das WHERE Ob_f2 LIKE '% %' funktioniert, war ja einfacher als ich dachte, gibt es auch eine Möglichkeit abzufragen wo am Ende ein Zeilenumbruch ist? lg und scönes Wochenende Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 29. August 2020 Melden Teilen Geschrieben 29. August 2020 Hier findest Du viele Hinweise in Bezug auf TSQL und Zeilenumbruch bzw. Zeilenschaltung. https://www.sqlshack.com/sql-carriage-return-or-tab-in-sql-server-string/ Du kannst es mal so in er Art probieren: SELECT * FROM TAB WHERE DeinFeld like '%'+CHAR(13) SELECT * FROM TAB WHERE DeinFeld like '%CHAR(13)' Ich hab kein System im Zugriff um es zu testen. Zitieren Link zu diesem Kommentar
stefan4711 3 Geschrieben 9. September 2020 Autor Melden Teilen Geschrieben 9. September 2020 Also ich habe jetzt folgendermaßen versucht die Linefeeds am Ende zu löschen, leider bekomme ich eine Meldung, dass dieses für VARCHAR unzulässig sei, was kann man hier tun? use DBArchiv UPDATE M_Objekte SET Ob_F21 = REPLACE ( ob_f21 , CHAR(13) + CHAR(10) , ', ' ) WHERE Ob_ID IN ( SELECT Ob_ID FROM M_Objekte INNER JOIN M_Bestaende ON M_Objekte.B_ID = M_Bestaende.B_ID WHERE B_intAbk = 'BestandA' ) lg und schöne Restwoche noch Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.