我有以下SQL語句:SQL If(或Case)語句的where子句?
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子句specfically限制優先下午5點在什麼類型的IF或CASE語句。任何和所有的幫助,非常感謝!提前致謝!
我可能找到了解決方案!我已經添加了以下行WHERE子句的末尾:
AND (case when WORKORDER.WORKTYPE='PM' then WORKORDER.WOPRIORITY<>5)
感謝您的快速反應!你完全正確!我正在推翻它! (寫我的帖子實際上幫助我意識到了這一點!) – 2011-03-02 16:30:57
你得到了答案,因爲你回答最快!再次感謝! – 2011-03-02 17:41:17