Saltar al contenido

¿Cómo obtener la extensión de archivo del archivo como resultado de la consulta sql?

Posterior a consultar expertos en esta materia, programadores de deferentes áreas y maestros hemos dado con la respuesta al dilema y la plasmamos en este post.

Solución:

Puedes usar SUBSTRING_INDEX. Como esto:

select linkurl as DOWNLOADURL,lastrevlevel as VERSION,
code  as DESCRIPTION,created as RELEASEDATE,
SUBSTRING_INDEX(name,'.',-1) as TYPE
from datas where id in
(select child_id from datas _datas 
where parent_id=( select max(id) from datas 
where code = 'AN4307SW'))

EDITAR

Si ve los documentos sobre esta función, creo que esto se aplicará bien a sus requisitos.

Devuelve la subcadena de string str antes de contar las ocurrencias del delimitador delim. Si count es positivo, se devuelve todo a la izquierda del delimitador final (contando desde la izquierda). Si count es negativo, se devuelve todo a la derecha del delimitador final (contando desde la derecha). SUBSTRING_INDEX() realiza una coincidencia que distingue entre mayúsculas y minúsculas cuando busca delim.

Esto también manejará un caso como este:

select SUBSTRING_INDEX('Test.Document.doc','.',-1);

EDIT2

Si está utilizando Oracle. Por favor, etiquete la pregunta en el asunto correcto la próxima vez. No hay SUBSTRING_INDEX en oráculo. Pero lo que puedo ver es que puedes hacer esto bastante fácil:

SELECT SUBSTR('Test.Document.doc', INSTR('Test.Document.doc', '.',-1)) 
FROM dual; 

Consulta completa como esta:

select linkurl as DOWNLOADURL,lastrevlevel as VERSION,
    code  as DESCRIPTION,created as RELEASEDATE,
    SUBSTR(name, INSTR(name, '.',-1))  as TYPE
    from datas where id in
    (select child_id from datas _datas 
    where parent_id=( select max(id) from datas 
    where code = 'AN4307SW'))

Referencia aquí

select linkurl as DOWNLOADURL,lastrevlevel as VERSION,
code  as DESCRIPTION,created as RELEASEDATE,reverse(substring(reverse(name), 1,charindex('.', reverse(name))-1)) as TYPE
from datas where id in
(select child_id from datas _datas 
where parent_id=( select max(id) from datas 
where code = 'AN4307SW'))  

Comentarios y valoraciones del post

Tienes la opción de añadir valor a nuestro contenido informacional tributando tu experiencia en las explicaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *