Sql-Server

如何閱讀 select 語句以了解結果

  • December 18, 2020

我確信這是一個非常基本的問題,但我仍然要問它,在 Oracle HR 模式上進行查詢我注意到這兩個查詢的結果是不同的:

在此處輸入圖像描述

預期結果: 在此處輸入圖像描述

我想知道為什麼會發生這種情況,使用括號時它會給我想要的結果,而如果我不使用括號它會給我另一個沒有意義的記錄(Pat Fay),我應該如何閱讀這句話要了解這些輸出,非常感謝。

這是關於操作順序的:“and”發生在“or”之前,所以

where department_id=20 or department_id=50 and salary >= 8000

實際上是一樣的

where department_id=20 or ( department_id=50 and salary >= 8000 )

並且有不同的結果

where ( department_id=20 or department_id=50 ) and salary >= 8000

其中括號強制操作順序不同,並且部門 ID 一起評估。

引用自:https://dba.stackexchange.com/questions/281786