stefan4711 0 Posted August 28, 2020 Report Share Posted August 28, 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 Quote Link to post
mwiederkehr 117 Posted August 28, 2020 Report Share Posted August 28, 2020 WHERE Ob_f2 LIKE '% %' geht nicht? Quote Link to post
NilsK 1,213 Posted August 28, 2020 Report Share Posted August 28, 2020 Moin, %[ ]% geht nicht? Sonst könnte man versuchen: ... WHERE CHARINDEX(' ', FELDNAME) > 0 Gruß, Nils Quote Link to post
stefan4711 0 Posted August 29, 2020 Author Report Share Posted August 29, 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 Quote Link to post
Sunny61 500 Posted August 29, 2020 Report Share Posted August 29, 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. Quote Link to post
stefan4711 0 Posted September 9, 2020 Author Report Share Posted September 9, 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 Quote Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.