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?

Respostas:



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

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


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;

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');
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.