首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Cube.js过滤器查询中添加OR条件

如何在Cube.js过滤器查询中添加OR条件
EN

Stack Overflow用户
提问于 2019-10-25 11:36:16
回答 2查看 2.9K关注 0票数 3

我想在的JSON查询中添加Cube.js或条件。但是,一旦我在过滤器中添加了一个条件,它总是在SQL中添加条件。

下面是我正在尝试的JSON查询。

代码语言:javascript
复制
{
  "dimensions": [
    "Employee.name",
    "Employee.company"
  ],
  "timeDimensions": [],
  "measures": [],
  "filters": [
    {
      "dimension": "Employee.company",
      "operator": "contains",
      "values": [
        "soft"
      ]
    },
    {
      "dimension": "Employee.name",
      "operator": "contains",
      "values": [
        "soft"
      ]
    }
  ]
}

它在SQL查询下面生成。

代码语言:javascript
复制
SELECT
  `employee`.name `employee__name`,
  `employee`.company `employee__company`
FROM
  DEMO.Employee AS `employee`
WHERE
  `employee`.company LIKE CONCAT('%', 'soft', '%') 
             AND 
  `employee`.name LIKE CONCAT('%', 'soft', '%')
GROUP BY
  1,
  2;

如果我想在SQL下面生成Cube.js的JSON查询是什么?

代码语言:javascript
复制
SELECT
  `employee`.name `employee__name`,
  `employee`.company `employee__company`
FROM
  DEMO.Employee AS `employee`
WHERE
  `employee`.company LIKE CONCAT('%', 'soft', '%') 
             OR
  `employee`.name LIKE CONCAT('%', 'soft', '%')
GROUP BY
  1,
  2;
EN

回答 2

Stack Overflow用户

发布于 2019-10-26 18:50:19

目前还没有提供对逻辑运算符的API支持。与此同时,有几种解决办法:

  1. 定义模拟行为的维度。在你的情况下
代码语言:javascript
复制
cube(`Employee`, {
 // ...

 dimensions: {
   companyAndName: {
     sql: `CONCAT(${company}, ' ', ${name})`,
     type: `string`
   }
 }
});
  1. 定义段。这些也可以生成:https://cube.dev/docs/schema-generation
代码语言:javascript
复制
cube(`Employee`, {
  // ...

  segments: {
    soft: {
      sql: `${company} LIKE CONCAT('%', 'soft', '%') OR ${name} LIKE CONCAT('%', 'soft', '%')` 
    }
  }
});
票数 1
EN

Stack Overflow用户

发布于 2021-09-09 08:48:03

你就是这样做的

代码语言:javascript
复制
{
      or: [
        {
           "dimension": "Employee.company",
           "operator": "contains",
           "values": [
              "soft"
              ]
        },
        {
           "dimension": "Employee.name",
           "operator": "contains",
           "values": [
             "soft"
             ]
         }
       
      ];
    }

参考文档中的这个布尔逻辑运算符部分

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58557803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档