stefan4711 3 Geschrieben 28. August 2020 Melden 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
mwiederkehr 388 Geschrieben 28. August 2020 Melden Geschrieben 28. August 2020 WHERE Ob_f2 LIKE '% %' geht nicht? Zitieren
NilsK 2.978 Geschrieben 28. August 2020 Melden Geschrieben 28. August 2020 Moin, %[ ]% geht nicht? Sonst könnte man versuchen: ... WHERE CHARINDEX(' ', FELDNAME) > 0 Gruß, Nils Zitieren
stefan4711 3 Geschrieben 29. August 2020 Autor Melden 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
Sunny61 816 Geschrieben 29. August 2020 Melden 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
stefan4711 3 Geschrieben 9. September 2020 Autor Melden 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
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.