Select conditionSQL 列中的前三个字符串和后三个字符串

Select first and last three strings from column for conditionSQL

我的目标是 select 所有以与第一行相同的 3 个字符串开始和结束的列。 在这种情况下很简单,因为 CONCAT 等于 'SCLMIA'

AND CONCAT(origin, destination) = 'SCLMIA' 
AND ((flight_path LIKE '%SCL%' AND flight_path LIKE '%MIA%')

但现在的难点在于多个字符串。

AND CONCAT(origin, destination) IN ('SCLMIA', 'SCLIQQ','SCLMAD', 'LIMCUZ', 'BOGMDE', 'FORGRU', 'SDUCGH', 'SCLGRU', 'BOGLIM', 'GYEUIO')
AND (**here I need to replicate the same as above.**)

我读到它可以与 SUBSTRING, LEFT AND RIGHT select 三个第一个和最后一个字符串的函数一起使用,但我不知道该怎么做。

尝试过这个,但失败了: AND (flight_path LIKE '%' + SUBSTR(flight_path,3, LENGTH(flight_path) - 4) + '%')

需要注意的是,它是一个条件链,这就是为什么以 AND 开头的原因。

编辑:

Image: Sample of data single path 'SCLMIA' 它来自 Bigquery。

我想这就是你想要做的:

SELECT *
FROM 
    flight_paths
WHERE 
    CONCAT(origin, destination) IN ('SCLMIA', 'SCLIQQ', 'SCLMAD', 'LIMCUZ',  'BOGMDE', 'FORGRU', 'SDUCGH', 'SCLGRU', 'BOGLIM', 'GYEUIO')
    AND RIGHT(flight_path, 3) = origin 
    AND LEFT(flight_path, 3) = destination

这里有一个 db-fiddle 演示了答案: https://www.db-fiddle.com/f/vUZ4HL4NC9xaBBZpwTYNcR/0