[英]How to add OR condition in Cube.js filter query
I'm want to add OR condition in the JSON query of Cube.js.我想在 Cube.js 的 JSON 查询中添加OR条件。 But once I added one more condition in the filter it always adds AND condition in SQL query.
但是一旦我在过滤器中添加了一个条件,它总是在 SQL 查询中添加AND条件。
Below is the JSON query that I'm trying.下面是我正在尝试的 JSON 查询。
{
"dimensions": [
"Employee.name",
"Employee.company"
],
"timeDimensions": [],
"measures": [],
"filters": [
{
"dimension": "Employee.company",
"operator": "contains",
"values": [
"soft"
]
},
{
"dimension": "Employee.name",
"operator": "contains",
"values": [
"soft"
]
}
]
}
It generates below SQL query.它在下面生成 SQL 查询。
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;
What is the JSON query for Cube.js if I want to generate below SQL如果我想在 SQL 下面生成 Cube.js 的 JSON 查询是什么
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;
API support for logical operators isn't shipped yet. API 对逻辑运算符的支持尚未发布。 Meanwhile there're several workarounds:
同时有几种解决方法:
cube(`Employee`, {
// ...
dimensions: {
companyAndName: {
sql: `CONCAT(${company}, ' ', ${name})`,
type: `string`
}
}
});
cube(`Employee`, {
// ...
segments: {
soft: {
sql: `${company} LIKE CONCAT('%', 'soft', '%') OR ${name} LIKE CONCAT('%', 'soft', '%')`
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.