Oracle和MS SQL Server中的NOT条件和NOT()之间有什么区别
发布时间:2021-03-05 11:25:11 所属栏目:站长百科 来源:网络整理
导读:最近我可巧碰着了Sql Server和Oracle中的not().实行将NOT前提和not()与差异的运算符(如LIKE,IN等)举办较量的差异示例.我没有看到功效集和记录计数方面的任何差别,可是假如两者都做同样的工作,则但愿与社区确认或任何告诫? 示例查询 select count(*) from Em
最近我可巧碰着了Sql Server和Oracle中的not().实行将NOT前提和not()与差异的运算符(如LIKE,IN等)举办较量的差异示例.我没有看到功效集和记录计数方面的任何差别,可是假如两者都做同样的工作,则但愿与社区确认或任何告诫? 示例查询 select count(*) from Emp where country not in ('ENGLAND UK','HAITI','IRELAND') select count(*) from Emp where not(country in ('ENGLAND UK','IRELAND')) 办理要领NOT要害字的两个展示位置在逻辑上都是等效的,并给出沟通的功效.在括号内的表达式之前不会反转该表达式的功效,但这是传统的布尔逻辑,而不是特定于SQL.在T-SQL中,SQL Server 2014和SQL Server 2016中的执行打算与您的示例沟通(假设:表具有主键,而国度/地域未编入索引). 有一点必要留意,出格是您给出的示例:当IN运算符的参数中包括NULL值时,IN运算符的举动与预期的差异.对付Oracle,see here; 对付T-SQL,请思量以下事项: select 1 where 'A' in (null) 这不会返回一行.这好像微不敷道,可是: select 1 where 'A' not in (null) 此声明不会返回一行.此刻我们可以争冲突,假如我们从第一个语句中逻辑反转表达式,它必定会返回一行: select 1 where not ('A' in (null)) 但究竟并非云云,由于IN(NULL)的计较功效为neither true nor false. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |