Gibt es eine Möglichkeit, SCHNEIDEN Sie alle Daten in einer SELECT * FROM-Anweisung?
Ich versuche zu wählen, und schneiden Sie alle Einträge aus einer Tabelle mit der folgenden Anweisung:
SELECT TRIM(*) FROM TABLE
Aber ich bekomme eine Fehlermeldung. Gibt es einen Weg, um wieder alle Einträge ausgewählt, so dass Sie beschnitten sind für Leerzeichen am Anfang und Ende jedes Strings?
- Die Antwort ist Nein. Aber warum willst du speichern, führende/nachfolgende Leerzeichen?
- Und das hinzufügen ein anderer Gedanke: SELECT * ist böse. Sie können nie das Vertrauen in, ob die Spalten werden dieselben im Laufe der Zeit, so dass das format der Ausgabe ändern, und Ihre Anwendung könnte kaputt gehen. Explizite Liste von Spalten, WÄHLEN Sie statt.
- stackoverflow.com/questions/507869/trim-all-database-fields überprüfen Sie mit diesem link
- Mit PTF macht es möglich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie angeben, in jedem string-Spalte mit der hand:
Gibt es ein anderes problem mit deinem Vorschlag.
*
ist ein Platzhalter für jede Spalte in der Tabelle, so dass es Probleme mit dem trimmendate/decimal/spatial data ...
.Nachtrag
Mit
Oracle 18c Polymorphic Table Functions
(code ist nur PoC, es ist ein Raum für viele Verbesserungen):Und Tabelle Funktion:
Und final call:
db<>fiddle-demo
SSMS
ist per drag-und-drop aus dem Objekt-explorer alle Spalten der Abfrage-Fenster. Verschieben Sie dann alle string-Spalten am Anfang, verwenden Sie block-Auswahl und schreibenTRIM(
für mehrere Spalten auf einmal. Dann den Cursor an das Ende der Zeile, block-Auswahl und schließen fehlen)
. SQL Server hatLTRIM(RTRIM(
stattTRIM
.LTRIM(RTRIM(...))
in T-SQL als dass nichtTRIM
.