我对正在运行的查询的结果感到困惑。希望这不会以我拍打我的头并感觉自己像个白痴而告终,但在这里(SQL Server 2008)。
第一个查询是这样的:
SELECT p.product_number,p.long_desc
FROM products p
WHERE p.prod_status = 1
AND ((p.long_desc IS NULL) OR (p.long_desc LIKE '%N/A%'))
ORDER BY p.product_number
第二个版本是这样的:
SELECT p.product_number,p.long_desc
FROM products p
WHERE p.prod_status = 1
AND p.long_desc IS NULL
OR p.long_desc LIKE '%N/A%'
ORDER BY p.product_number
第二个版本中有三个产品没有出现在第一个版本中,但对我来说这两个查询应该给出相同的结果。出现在第二个但不是第一个的三个项目都具有列N/A
中的值long_desc
。
但是,还有许多其他N/A
版本也出现在这两个版本中。
我对这里使用括号有什么不明白的地方?