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:
- qwerty20211220120220
- asdfgh20211229121005
- zxcvbn20211223121151
¿Cómo puedo ordenar por una parte de la cadena que contiene la fecha en name_file?
Gracias a todos.
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 utilizarORDER BY
para ordenar el conjunto de resultados en función de la fecha extraída. Aquí tienes un ejemplo de consulta:En esta consulta, se utiliza
SUBSTR
para extraer la porción del nombre del archivo que representa la fecha (202112
). El primer argumento deSUBSTR
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.