es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Orden personalizada por

Necesito ordenar un conjunto de resultados por una subcadena del nombre del archivo. La subcadena es la fecha.

Por ejemplo:

select * from mytable where file_name like '%202112%'
order by name_file desc;

El conjunto de resultados es, por ejemplo, este:

  1. qwerty20211220120220
  2. asdfgh20211229121005
  3. zxcvbn20211223121151

¿Cómo puedo ordenar por una parte de la cadena que contiene la fecha en name_file?

Gracias a todos.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para ordenar el conjunto de resultados por una subcadena del nombre del archivo (en este caso, la fecha), puedes utilizar la función SUBSTR de SQL para extraer la parte de la fecha del nombre del archivo y luego utilizar ORDER BY para ordenar el conjunto de resultados en función de la fecha extraída. Aquí tienes un ejemplo de consulta:

    SELECT *
    FROM mytable
    WHERE file_name LIKE '%202112%'
    ORDER BY SUBSTR(file_name, 7, 6) DESC;
    

    En esta consulta, se utiliza SUBSTR para extraer la porción del nombre del archivo que representa la fecha (202112). El primer argumento de SUBSTR es la expresión de cadena de la cual se va a extraer (file_name), el segundo argumento es la posición de inicio de la subcadena (7, ya que la fecha comienza en el séptimo carácter) y el tercer argumento es la longitud de la subcadena a extraer (6, ya que la fecha es un número de 6 dígitos).

    El conjunto de resultados se ordena luego en orden descendente (DESC) en función de la fecha extraída.

Comments are closed.