¿Cómo tomar los últimos cuatro caracteres de un varchar?

92

Estoy tratando de tomar los últimos cuatro caracteres solo de un campo varchar. Todas las filas tienen diferentes longitudes. ¿Qué función debería usar para lograr esto?

Michael A
fuente

Respuestas:

225

Lo correcto debería hacer:

select RIGHT('abcdeffff',4)
Rayo vacío
fuente
20
SUBSTR(column, LENGTH(column) - 3, 4)

LENGTHdevuelve la longitud de la cadena y SUBSTRdevuelve 4 caracteres de "la longitud de la posición - 4"

drchris
fuente
2
Bienvenido a SO y gracias por publicar la respuesta. Considere agregar contexto a su código y también formatear su código.
Richard Erickson
2
Aquí hay un error de uno en uno. Debería ser SUBSTR(column, LENGTH(column) - 3, 4). Si la longitud es 4, debemos comenzar en la posición 1 y tomar 4 caracteres.
Karl
9

Para Oracle SQL, SUBSTR(column_name, -# of characters requested)extraerá los últimos tres caracteres para una consulta determinada. p.ej

SELECT SUBSTR(description,-3) FROM student.course;
alexanderjsingleton
fuente
Solo para tener en cuenta, esto no funciona para ms sql / sql-server, ¿verdad?
ScottFoster1000
-3

solución probada en 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
fuente