SE科雷傲VE中华V中的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

 

 

 使用括号把两个小尺码合并为2个大的条件。 

 使用括号把多个小尺码合并为多个大的标准化。 

相关文章