|
我正在创造一个需要条件where子句的SQL查询。8 f( N7 l4 y0 _% Y1 G
应该是这样的:4 X6 A7 ~, O: s% ^4 U( O3 \
SELECT DateAppr, TimeAppr, TAT, LaserLTR, Permit, LtrPrinter, JobName, JobNumber, JobDesc, ActQty, (ActQty-LtrPrinted) AS L, (ActQty-QtyInserted) AS M, ((ActQty-LtrPrinted)-(ActQty-QtyInserted)) AS NFROM [test].[dbo].[MM]WHERE DateDropped = --This is where i need the conditional clause AND CASE WHEN @JobsOnHold = 1 THEN DateAppr >= ELSE DateAppr != END以上查询无效。这是不正确的语法,还是我不知道的另一种方式?! [" q) W! Y& c- q0 n( J; g! k( C
我不想使用动态SQL,是否还有其他方法,或者必须使用类似的解决方案,如if else对不同的where使用和使用同样的查询?
* ^ j; U: V: J # j6 ]% A" y( f4 _* C; C
解决方案: 1 V' \, n- @5 L* |( x( X" F
试试这个
8 {7 i+ h( V1 `& LSELECT DateAppr, TimeAppr, TAT, LaserLTR, Permit, LtrPrinter, JobName, JobNumber, JobDesc, ActQty, (ActQty-LtrPrinted) AS L, (ActQty-QtyInserted) AS M, ((ActQty-LtrPrinted)-(ActQty-QtyInserted)) AS NFROM [test].[dbo].[MM]WHERE DateDropped = 0 AND (ISNULL(@JobsOnHold,0) = 1 AND DateAppr >= 0) OR (ISNULL(@JobsOnHold,0) != 1 AND DateAppr != 0) )您可以在这里阅读相关条件WHERE更多信息。 |
|