我有以下 SQL 语句:
SELECT
WORKORDER.WONUM,
WORKORDER.WO3,
WORKORDER.DESCRIPTION WO_DESC,
WORKORDER.WORKTYPE,
WORKORDER.STATUS,
WORKORDER.WOPRIORITY,
(case when WORKORDER.CUSTREQ1=1 then 'Yes' else 'No' end) WO18,
WORKORDER.REPORTDATE,
WORKORDER.ACTFINISH,
(WORKORDER.LOCATION + ' ' +LOCATIONS.DESCRIPTION) LOC_DESC
FROM WORKORDER
LEFT OUTER JOIN LOCATIONS ON WORKORDER.LOCATION = LOCATIONS.LOCATION
WHERE
WORKORDER.HISTORYFLAG = 0
AND WORKORDER.ISTASK = 0
AND WORKORDER.STATUS = 'COMP'
AND WORKORDER.STATUSDATE >= getdate() - 1
AND WORKORDER.LOCATION LIKE 'ABC%'
我想添加一个附加条件(可能在 WHERE 子句中)来启用以下行为:
- 如果工单 WORKTYPE 为“PM”且 WOPRIORITY 为 5,则不要包含它!
- 如果工作订单 WORKTYPE 是其他任何内容,则允许任何优先级
我不确定在 WHERE 子句中放入什么类型的 IF 或 CASE 语句来具体限制优先级 5 PM。非常感谢任何和所有的帮助!提前致谢!
我可能找到了解决办法!我已将以下行添加到 WHERE 子句的末尾:
AND (case when WORKORDER.WORKTYPE='PM' then WORKORDER.WOPRIORITY<>5)
最佳答案
我认为你可能想得太仔细了......
WHERE NOT (WorkType = 'PM' AND WOPRIORITY = 5)
关于SQL Where 子句带有 If(或 Case)语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5170386/