我的目標是選擇以與第一行相同的 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選擇三個第一個和最后一個字串的函式一起使用,但我不知道該怎么做。
嘗試過這個,但失敗了:
AND (flight_path LIKE '%' SUBSTR(flight_path,3, LENGTH(flight_path) - 4) '%')
應該注意的是,這是一個條件鏈,這就是為什么以 AND 開頭。
編輯:
影像:資料單路徑示例“SCLMIA” 它來自 Bigquery。
uj5u.com熱心網友回復:
我認為這就是你想要做的:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/392798.html
上一篇:sql查詢偏好順序
下一篇:在SQL中根據日期動態聚合列
