SQL在OR条件下显示错误记录

时间:2013-10-08 11:01:32

标签: sql sql-server sql-server-2008

我正在努力为下面的场景编写查询,任何人都可以帮助我吗?

我有两个列错误,优先级都是数字字段。需要根据条件获取。如果我从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的所有记录,我需要记录只有workitem type = incident或bug for error class = 3或priority = 3

从表中返回所有记录。

如果我放置并且条件如[ErrorClass] = 3[Microsoft.VSTS.Common.Priority] = 3只有当值都是3时它才会返回。我需要所有匹配3以及上述条件的记录

1 个答案:

答案 0 :(得分: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