Ein häufiges Problem beim Importieren von Daten in eine Datenbank ist der unerwünschte Leerraum am Anfang oder Ende von Zeichenfolgen.
Führende und nachfolgende Leerzeichen können Probleme verursachen, wenn Sie versuchen, doppelte Datensätze zu identifizieren, Tabellen in Zeichenfolgenspalten zu VERKNÜPFEN oder einfach nach einem bestimmten Wert abzufragen.
Glücklicherweise entfernt die SQL TRIM-Funktion diesen lästigen führenden und nachfolgenden Leerraum aus Zeichenfolgen.
Leerzeichen ist ein Zeichen in einer Zeichenfolge, das einen horizontalen oder vertikalen Raum in der Typografie darstellt., Mit anderen Worten: Registerkarten, Zeilenvorschübe, Wagenrückläufe und ja Leerzeichen.
Ein Leerzeichen hat einen Zeichenwert, genau wie ‚A‘, ‚B‘ und ‚C‘ einen Wert haben. Wir können beim Drucken einfach nicht immer Leerzeichen sehen.
Und genau wie jedes andere Zeichen hat ein Leerzeichen einen Dezimalwert in der ASCII-Tabelle. Diese kleine Tatsache ist sehr praktisch, wenn Sie versuchen, ein Leerzeichen mit einem SQL-Befehl zu identifizieren.,
The TRIM Function
Safari Books online has a nice snippet on the TRIM command:
ANSI SQL Standard Syntax
TRIM( FROM ]
target_string
)
The default for the first parameter, LEADING | TRAILING | BOTH
, is ‘BOTH’.
The default for is a space char(32)
.,
Mit anderen Worten, wenn Sie nur die target_string
(der einzige erforderliche Parameter) angeben, werden alle führenden und nachfolgenden Leerzeichen getrimmt.
Beispiel
Accept schneidet standardmäßig SOWOHL führende als auch nachfolgende Leerzeichen zu:
Hinweis: Die TRIM-Funktion für SQL Server-Versionen 2016 und niedriger enthält keine Argumente, die die Zeichen angeben, die aus einer Zeichenfolge TRIMMEN sollen. Sie trimmen nur führende/nachfolgende Leerzeichen.
Beispiel
Entfernen Sie nur FÜHRENDE Sternchen (*) enthalten., Beachten Sie, dass TRIM, obwohl nur ein ‚*‘ als Parameter angegeben ist, alle führenden Sternchen ( * ) entfernt, unabhängig davon, wie viele vorhanden sind.
SELECT '*** Hello World **',
TRIM(LEADING '*' FROM '*** Hello World **');+--------------------+---------------------------------------------+
| *** Hello World ** | TRIM(LEADING '*' FROM '*** Hello World **') |
+--------------------+---------------------------------------------+
| *** Hello World ** | Hello World ** |
+--------------------+---------------------------------------------+