2017-02-17 5 views
0

В данных GTFS для Денвер, таблица BUS_STOPS хранит множество разделенных запятыми значений в столбце МАРШРУТЫ:Как выполнять поиск из нескольких значений в одном поле (Bus Stops в GTFS)?

28, 19, 44, 10, 32 

Я BUS_ROUTES выбора, которые находятся в пределах расстояния школы.

Но для выбора соответствующих остановок по этим маршрутам подразумевается попытка найти остановку автобуса (например, которая обслуживает автобус 44) из списка, который я описал выше, - я не уверен, как это сделать.

Комментарий ниже помог мне понять, выбирая маршрут 1 по своей стоимости будет выглядеть следующим образом:

select * from BUS_STOPS where ROUTES like '% 44,%'; 

... который возвращает запись, содержащую 44 в одном из перечисленных значений.

Как я могу заменить статическое значение 44 на значение поля ROUTES в таблице BUS_ROUTES?

В таблице BUS_ROUTES выглядит следующим образом:

enter image description here

... и таблица BUS_STOPS выглядит следующим образом:

enter image description here

Я использую PostgreSQL для запроса данных GTFS ,

+0

выберите ... из BUS_STOPS, где ROUTES нравится «% 44,%»; –

+0

О! Как это может работать, если я хочу сопоставить его с полем маршрута маршрутов маршрута? Ты знаешь, что я имею в виду? – DPSSpatial

+0

ОК. здесь вы должны заполнить то, что вы сделали до сих пор. Пожалуйста, обновите вопрос с помощью этого qry: 'select * from BUS_STOPS, где ROUTES нравится '% 44,%';' –

ответ

2

Преобразование строки в массив, а затем использовать сравнение массива:

select * 
from BUS_STOPS 
where '44' = any(string_to_array(routes,',') 

Это также может быть использован в качестве условия соединения:

select * 
from BUS_STOPS s 
    join bus_routes r on string_to_array(s.routes,',') @> string_to_array(r.routes,',') 

@> является «содержит» оператор и если левый массив (bus_stops.routes) содержит все элементы из правого массива (bus_routes.routes). Другим вариантом будет использование перекрытия оператора && - мне непонятно, что именно вы хотите

+0

Это второе заявление было тем, что мне нужно ... большое спасибо !!! – DPSSpatial

Смежные вопросы