¿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?

Respuestas:



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"


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;

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');
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.