SQL SERVER中的And与Or的事先级。SQL SERVER中之And与Or的优先级。

数据库中出城库表,其中起国家、省、城市。

数据库中产生市库表,其中起国家、省、城市。

图片 1

图片 2

图片 3

图片 4

 

 

 举例:在广东省内(包含广东省自己),找来名称为“广州”的记录

 举例:在广东省内(包含广东省自我),找有名称为“广州”的笔录

率先,广东省内的尺度是:ParentId = 2 Or Id
=2 

首先,广东省内的基准是:ParentId = 2 Or Id
=2 

名为“广州”的准是:Name=’广州’

号为“广州”的极是:Name=’广州’

合并后:

合并后:

SELECT * FROM dbo.City
WHERE ParentId = 2 OR Id = 2 AND
Name=’广州’

SELECT * FROM dbo.City
WHERE ParentId = 2 OR Id = 2 AND
Name=’广州’

但是结果如下:

只是结果如下:

图片 5

图片 6

 

 

 出现上面结果的由是坐Or的先行级比And低,上面的SQL等效于:

 出现上面结果的原因是以Or的预级比And低,上面的SQL等效于:

SELECT * FROM dbo.City
WHERE ParentId = 2 OR (Id = 2 AND
Name=’广州’)

SELECT * FROM dbo.City
WHERE ParentId = 2 OR (Id = 2 AND
Name=’广州’)

假定我辈需要的凡在率先极满足的情形下,同时满足第二独标准化的多寡。

比方我们需要的凡于第一原则满足的情下,同时满足第二独规范的数码。

SELECT * FROM dbo.City
WHERE (ParentId = 2 OR Id = 2) AND
Name=’广州’

SELECT * FROM dbo.City
WHERE (ParentId = 2 OR Id = 2) AND
Name=’广州’

图片 7

图片 8

 

 

 使用括号将多单稍尺码合并为一个老大之尺度。 

 使用括号将多个小规则合并为一个不行的标准化。 

相关文章

admin

网站地图xml地图