我有一个非常简单的查询,在WHERE子句中有类似"employee_id = 60 and (manager in (-1) or -1 in (-1))“的东西,这在SQL server、MySQL、Oracle等数据库中工作得很好,带回1个employee_id记录。-1代表一个提示值,如果没有为管理器选择任何内容,则默认为-1,因此管理器的筛选器无效。
在MonetDB中,它将只返回所有记录;完全忽略employee_id过滤器。我不知道为什么,这让我发疯。完整的查询如下,如果谁有一个想法,请让我知道。谢谢,马特
select employee_id, manager_id
from employee
where employee_id = 60
and (manager_id in (-1) or -1 in (-1)); 发布于 2015-01-26 23:39:30
CREATE TABLE employee
(
employee_id INTEGER NOT NULL,
manager_id INTEGER NULL
);
INSERT INTO employee (employee_id,manager_id) values (50,70);
INSERT INTO employee (employee_id,manager_id) values (60,70);
INSERT INTO employee (employee_id,manager_id) values (70,null);发布于 2015-01-27 16:40:41
您发现了一个错误。此问题将在monetdb的下一个版本中修复。感谢您提供的可重现的示例!
https://stackoverflow.com/questions/28120224
复制相似问题