首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MonetDB OR子句

MonetDB OR子句
EN

Stack Overflow用户
提问于 2015-01-24 07:09:51
回答 2查看 99关注 0票数 1

我有一个非常简单的查询,在WHERE子句中有类似"employee_id = 60 and (manager in (-1) or -1 in (-1))“的东西,这在SQL server、MySQL、Oracle等数据库中工作得很好,带回1个employee_id记录。-1代表一个提示值,如果没有为管理器选择任何内容,则默认为-1,因此管理器的筛选器无效。

在MonetDB中,它将只返回所有记录;完全忽略employee_id过滤器。我不知道为什么,这让我发疯。完整的查询如下,如果谁有一个想法,请让我知道。谢谢,马特

代码语言:javascript
复制
select employee_id, manager_id
from employee
where employee_id = 60
and (manager_id in (-1) or -1 in (-1)); 
EN

回答 2

Stack Overflow用户

发布于 2015-01-26 23:39:30

代码语言:javascript
复制
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);
票数 1
EN

Stack Overflow用户

发布于 2015-01-27 16:40:41

您发现了一个错误。此问题将在monetdb的下一个版本中修复。感谢您提供的可重现的示例!

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

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

https://stackoverflow.com/questions/28120224

复制
相关文章

相似问题

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