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ąć?

Odpowiedzi:



20
SUBSTR(column, LENGTH(column) - 3, 4)

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


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;

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');
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.