Seleccionar las primeras y últimas tres cadenas de la columna para la condición SQL
Mi objetivo es seleccionar todas las columnas que comienzan y terminan con las mismas 3 cadenas que la primera fila.
En este caso fue sencillo, ya que CONCAT era igual a ‘SCLMIA’.
AND CONCAT(origin, destination) = 'SCLMIA'
AND ((flight_path LIKE '%SCL%' AND flight_path LIKE '%MIA%')
Pero ahora la dificultad es para múltiples cadenas.
AND CONCAT(origin, destination) IN ('SCLMIA', 'SCLIQQ','SCLMAD', 'LIMCUZ', 'BOGMDE', 'FORGRU', 'SDUCGH', 'SCLGRU', 'BOGLIM', 'GYEUIO')
AND (**aquí necesito replicar lo mismo que arriba**)
He leído que se puede hacer con las funciones SUBSTRING, LEFT y RIGHT seleccionando las tres primeras y últimas cadenas, pero no sé cómo hacerlo.
Intenté con esto, pero falló:
AND (flight_path LIKE '%' + SUBSTR(flight_path,3, LENGTH(flight_path) - 4) + '%')
Debe tenerse en cuenta que es una cadena de condiciones, por eso comienza con AND.
Edit:
Imagen: Muestra de datos con una sola ruta ‘SCLMIA’
Es de Bigquery.
davy.ai
Para seleccionar todas las columnas que comienzan y terminan con las mismas 3 cadenas de caracteres que la primera fila, puedes utilizar la función SUBSTRING en combinación con las funciones LEFT y RIGHT.
Primero, necesitas extraer los primeros y últimos 3 caracteres de la columna flight_path para la primera fila. Puedes hacer esto con la siguiente consulta:
Esto te dará los primeros 3 caracteres (inicio) y los últimos 3 caracteres (fin) de la columna flight_path para la primera fila.
A continuación, puedes utilizar los valores de inicio y fin para filtrar el resto de las filas. Aquí tienes un ejemplo:
Esto seleccionará todas las filas donde el origen y el destino se encuentren en la lista especificada y donde flight_path comienza con ‘SCL’ y termina con ‘MIA’. Puedes ajustar los valores de inicio y fin para que coincidan con la primera fila de tus datos.