-1
我很努力爲下面的場景編寫查詢,任何人都可以幫助我嗎?SQL在OR條件中顯示錯誤的記錄
我有兩列錯誤和優先級都是數字字段。需要根據條件取回。如果我從UI屏幕選擇值3,它必須在表格中查找記錄。
如果在任一列的值比賽我一定要回報,我已經寫了這樣
Select *
FROM WorkItems
WHERE [System.Title] like '%defect%'
AND [System.WorkItemType] in ('Incident','bug')
AND [ErrorClass] =3
OR [Microsoft.VSTS.Common.Priority] =3
AND [Customer] = 'XYZ'
order by [System.WorkItemType]
其提供虛假記錄,並獲取所有優先級或記錄errorclass = 3的記錄,我需要的只記錄工作項類型=事件或錯誤類= 3或優先級= 3的錯誤
它從表中返回所有記錄。
如果我把和條件這樣[ErrorClass] = 3
和[Microsoft.VSTS.Common.Priority] = 3
其只返回如果這兩個值是3,我需要所有在上述情況下沿搭配3,記錄
我想補充爲此,OP在學習一些東西。 where子句中添加的括號會破壞邏輯鏈。所以,如果你願意的話,不要說它對每一個條件都是AND OR,你可以用括號把它分解成在AND子句中有一個OR子句。 –
非常感謝,它的工作。對不起,我在sql查詢很差。 – user1845163
操作的操作者是先評估ANd條件,然後評估OR條件。這是重要的知道,因爲它在結果上有所不同。當您將AND和OR混合以確保您的意圖清晰時,最好將()中的東西(它們按照操作順序比AND子句更高)放在一起。 – HLGEM