Como tirar os últimos quatro caracteres de um varchar?

90

Estou tentando pegar os últimos quatro caracteres apenas de um campo varchar. Todas as linhas têm comprimentos diferentes. Que função devo usar para fazer isso?

Michael A
fonte

Respostas:

220

O certo deve servir:

select RIGHT('abcdeffff',4)
Raio Vazio
fonte
19
SUBSTR(column, LENGTH(column) - 3, 4)

LENGTHretorna o comprimento da string e SUBSTR4 caracteres de "comprimento da posição - 4"

Drchris
fonte
2
Bem-vindo ao SO e obrigado por postar a resposta. Considere adicionar contexto ao seu código e também formatá-lo.
Richard Erickson
2
Há um bug off-by-one aqui. Deve ser SUBSTR(column, LENGTH(column) - 3, 4). Se o comprimento for 4, precisamos começar na posição 1 e pegar 4 caracteres.
Karl
9

Para Oracle SQL, SUBSTR(column_name, -# of characters requested)extrairá os últimos três caracteres para uma determinada consulta. por exemplo

SELECT SUBSTR(description,-3) FROM student.course;
alexanderjsingleton
fonte
Apenas para observar, isso não funciona para ms sql / sql-server, certo?
ScottFoster1000
-3

solução testada no 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
fonte