SELECT *
FROM Items
WHERE (Balance >= 0) OR (Item Like '%XF%' AND Balance > 0)
Run Code Online (Sandbox Code Playgroud)
这将返回所有项目balance >= 0
.
我需要它来报告带有balance >=0
OR的所有项目...所有项目都带有balance > 0
(但不等于0)并且在项目编号中有'XF'.
Item 1234 - Balance 0
Item 1234 - Balance 25
Item 1234-XF - Balance 25
Item 1234-XF - Balance 0 <-- should not be here because it is an XF and has a balance of 0.
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?如果我单独做各自的话,它确实有效,所以我不确定为什么我不能将两者结合起来.
它正在做你要求它做的事情.如果Balance > 0
是真的,那么Balance >= 0
一定是真的,无论是否Item Like '%XF%'
真实无所谓.
我想你其实想要这样的东西:
SELECT * FROM Items
WHERE (Balance > 0)
OR (Item Not Like '%XF%' AND Balance = 0)
Run Code Online (Sandbox Code Playgroud)