Wie nehme ich die letzten vier Zeichen von einem Varchar?

90

Ich versuche, die letzten vier Zeichen nur aus einem Varchar-Feld zu entnehmen. Alle Reihen sind unterschiedlich lang. Welche Funktion sollte ich verwenden, um dies zu erreichen?

Michael A.
quelle

Antworten:

219

Richtig sollte tun:

select RIGHT('abcdeffff',4)
Leerer Strahl
quelle
18
SUBSTR(column, LENGTH(column) - 3, 4)

LENGTHGibt die Länge der Zeichenfolge zurück und SUBSTRgibt 4 Zeichen von "der Positionslänge - 4" zurück.

drchris
quelle
2
Willkommen bei SO und vielen Dank für die Antwort. Bitte erwägen Sie, Ihrem Code Kontext hinzuzufügen und Ihren Code zu formatieren.
Richard Erickson
2
Hier gibt es einen Fehler nach dem anderen. Sollte sein SUBSTR(column, LENGTH(column) - 3, 4). Wenn die Länge 4 beträgt, müssen wir an Position 1 beginnen und 4 Zeichen nehmen.
Karl
9

SUBSTR(column_name, -# of characters requested)Extrahiert für Oracle SQL die letzten drei Zeichen für eine bestimmte Abfrage. z.B

SELECT SUBSTR(description,-3) FROM student.course;
alexanderjsingleton
quelle
Nur um zu beachten, das funktioniert nicht für ms sql / sql-server, oder?
ScottFoster1000
-3

getestete Lösung auf Hackerrank ....

select distinct(city) from station
where substr(lower(city), length(city), 1) in ('a', 'e', 'i', 'o', 'u') and substr(lower(city), 1, 1) in ('a', 'e', 'i', 'o', 'u');
Pratishtha Tripathi
quelle