Jak zabrać ostatnie cztery postacie z varchara?

93

Próbuję pobrać ostatnie cztery znaki tylko z pola varchar. Wszystkie rzędy mają różne długości. Jakiej funkcji powinienem użyć, aby to osiągnąć?

Michael A.
źródło

Odpowiedzi:

227

Prawo powinno zrobić:

select RIGHT('abcdeffff',4)
Void Ray
źródło
20
SUBSTR(column, LENGTH(column) - 3, 4)

LENGTHzwraca długość łańcucha i SUBSTRzwraca 4 znaki z „długość pozycji - 4”

drchris
źródło
2
Witamy w SO i dziękujemy za wysłanie odpowiedzi. Rozważ dodanie kontekstu do kodu, a także sformatowanie kodu.
Richard Erickson,
2
Występuje tutaj błąd poza jednym. Powinien być SUBSTR(column, LENGTH(column) - 3, 4). Jeśli długość wynosi 4, musimy zacząć od pozycji 1 i wziąć 4 znaki.
Karl
9

W przypadku Oracle SQL SUBSTR(column_name, -# of characters requested)wyodrębni ostatnie trzy znaki dla danego zapytania. na przykład

SELECT SUBSTR(description,-3) FROM student.course;
alexanderjsingleton
źródło
Uwaga, to nie działa dla ms sql / sql-server, prawda?
ScottFoster1000
-3

sprawdzone rozwiązanie na 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
źródło