Jump to content

Leerzeichen in SQL filtern


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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
 

Link zu diesem Kommentar

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.

Link zu diesem Kommentar
  • 2 Wochen später...

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...