如何使用<=操作在文本列上构造SoQL where子句?

时间:2019-05-28 03:10:29

标签: socrata soda

当尝试在SoQL文本字段上应用<=操作时,出现无法识别的参数错误。非常感谢您的帮助。

我尝试在此文本字段上应用几个不同的过滤器,但仅=操作有效。当我尝试其他任何方法时,都会收到无法识别的参数错误。

例如: https://data.sfgov.org/resource/bbb8-hzi6.json?start24=10:00(工作正常) 但 https://data.sfgov.org/resource/bbb8-hzi6.json?start24 <= 10:00(失败)

根据此处https://dev.socrata.com/docs/datatypes/text.html#的文档,<=计算字母数字前或等于的字符串。我希望这些操作能按所述对文本字符串起作用。

1 个答案:

答案 0 :(得分:0)

Socrata API使用常规的GET参数。在您的示例中,您正在执行simple filtering,这使您可以执行完全匹配。

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"

现在, Socrata可以处理并返回您的结果。