繁体   English   中英

MonetDB OR子句

[英]MonetDB OR Clause

我有一个非常简单的查询,即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)); 
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);

您发现了一个错误。 此问题将在下一版的monetdb中修复。 谢谢你的例子!

https://www.monetdb.org/bugzilla/show_bug.cgi?id=3655

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM