0

所以,假设我有一个 SQL 表:

create table Person(id varchar2(255) not null);

我正在尝试使用 Apache Olingo 包装它。

是否可以在 OData 中表达此 SQL 查询?

select * from Person where id in ('a1', 'a2', 'a3', ... 'an');

我的第一次尝试是使用多重OR过滤器,如下所示:

http://myserver:8080/odata/Person?$filter=(id eq '0000022AC58540EA') or (id eq '00001CD8D55ED552') or (id eq ‘000027F7F21A6196')

但这给了我以下错误:

<error>
  <code/>
  <message xml:lang="en-US">
    Invalid filter expression: '(id eq '0000022AC58540EA') or (id eq '00001CD8D55ED552') or (id eq ‘000027F7F21A6196')'.
  </message>
</error>

这个答案建议使用 AND 和 ANY 谓词的组合来或多或少地达到相同的效果。这是翻译上述 SQL 查询的另一种方法吗?

谢谢!

4

1 回答 1

2

正如 Yi 评论的那样,查询非常好,我相信您会收到错误,因为您在最后一个 or 语句中使用了错误的单引号:

  ‘000027F7F21A6196'
//^
于 2014-10-15T08:19:53.453 回答