Beim Verschieben einer Anwendung von Oracle auf SQL Server habe ich dieses Pseudo-Oracle PL / SQL:
SELECT LTRIM(MyColumn, '-, ') FROM MyTable
Das heißt, ich verwende OracleLTRIM
mit einem zweiten Argument, das die Zeichen angibt, die von der linken Seite der Zeichenfolge abgeschnitten werden sollen.
Leider erlaubt mir die T-SQL-Version vonLTRIM
nicht, die zu trimmenden Zeichen anzugeben.
Derzeit bin ich ziemlich ahnungslos, wie ich das migrieren soll LTRIM
. Ich denke sogar darüber nach, die Ergebnisse in meiner Hosting-C # -Anwendung zu verarbeiten, nachdem ich die gelesen habe MyColumn
.
Das sieht für mich ziemlich unelegant aus.
Meine Frage:
Gibt es eine sinnvolle Möglichkeit, eine LTRIM
ähnliche Funktionalität für T-SQL zu erhalten, um die Zeichen zum Trimmen weiterzugeben?
Bearbeiten 1:
Ich muss ersetzen -
, ,
und vom Anfang der Zeichenfolge.
Z.B:
-----, ,,, This is ,- a test,---,
würde dazu führen
This is ,- a test,---,
Bearbeiten 2:
Ich hoffe sehr, dass dies kein XY-Problem ist .
Vielleicht würde das Umschreiben meiner gesamten Abfrage die Notwendigkeit LTRIM
insgesamt beseitigen , obwohl ich mich lieber darauf konzentrieren würde, sie so 1: 1 wie möglich zu portieren und später die Nützlichkeit der zu hinterfragen LTRIM
.
quelle
Yeehaw.
quelle
Ich glaube nicht, dass Sie mit dieser Lösung im Vergleich zu Oracle zufrieden sein werden,
ltrim
aber sie macht, was Sie wollen.Rextester: http://rextester.com/IXOL62563
quelle
Kann nicht sagen , ob dies die beste Lösung ist, aber dies kann mit erreicht werden
SUBSTRING
,CHARINDEX
,LEFT
,LTRIM
, undREPLACE
. Ich gehe davon aus, dass Sie mit 8000 oder weniger Zeichen arbeiten.Testcode:
Ausgabe:
Nachfolgend finden Sie eine Erläuterung der einzelnen Teile. Ich habe am Ende ein "Z" hinzugefügt, um den Fall zu behandeln, in dem die Zeichenfolge nur die Zeichen enthält, die entfernt werden müssen. Entfernen Sie zuerst alle Kommas:
Alles entfernen -:
Gepolsterte Felder von links entfernen:
Nimm das erste Zeichen, das kein Leerzeichen, Komma oder - ist:
Suchen Sie die Position des ersten Zeichens, das kein Leerzeichen, Komma oder - ist:
Nehmen Sie den Teilstring beginnend an der Position, die wir gefunden haben:
quelle