Как создать предложение SoQL where для текстового столбца, используя операцию <=? - PullRequest
0 голосов
/ 28 мая 2019

При попытке применить операцию <= к текстовому полю SoQL появляется ошибка «Неопознанные аргументы».Любая помощь очень ценится. </p>

Я пытался применить несколько различных фильтров к этому текстовому полю, но работает только операция =.Когда я пытаюсь выполнить любую другую, я получаю сообщение об ошибке «Нераспознанные аргументы».

Например: https://data.sfgov.org/resource/bbb8-hzi6.json?start24=10:00 (работает нормально), но https://data.sfgov.org/resource/bbb8-hzi6.json?start24<=10:00 (не работает) </p>

В соответствии сдокументация здесь https://dev.socrata.com/docs/datatypes/text.html#, <= оценивает строки, которые являются буквенно-цифровыми перед или равными.Я ожидаю, что эти операции будут работать с текстовыми строками, как указано. </p>

1 Ответ

0 голосов
/ 01 июня 2019

Socrata API использует обычные параметры GET. В вашем примере вы выполняете простую фильтрацию , которая позволяет вам просто выполнять точные совпадения.

https://data.sfgov.org/resource/bbb8-hzi6.json?start24=10:00 
  • start24=10:00 имеет параметр GET start24 со значением 10:00

Однако в вашем примере с <=. Это означает что-то совершенно другое в мире URL; это значит:

  • start24<=10:00 имеет параметр GET start24< со значением 10:00.

Поскольку вы не можете использовать другие операторы, такие как <=, Socrata использует запросы SoQL, где специальные ключевые слова начинаются с $; например $where.

https://data.sfgov.org/resource/bbb8-hzi6.json?$where=start24<="10:00"

Теперь это переводится на:

  • $where=start24<="10:00" имеет параметр GET $where со значением start24<="10:00"

Теперь, этот Сократ может справиться и вернет ваши результаты.

...