brettanderson77
asked on
Oracle SQL IN Operator AND OR
Hi,
I have the same list of text values which are being compared to two different fields using the IN operator. I get different results if i bracket the AND OR as per below. Which one should I be using?
SELECT * FROM TABLE
WHERE FIELDA IS NOT NULL
AND FIELDB IN (ETC,ETC)
OR FIELDC IN (ETC,ETC)
or
SELECT * FROM TABLE
WHERE FIELDA IS NOT NULL
AND
(FIELDB IN (ETC,ETC)
OR FIELDC IN (ETC,ETC))
Cheers,
Brett
I have the same list of text values which are being compared to two different fields using the IN operator. I get different results if i bracket the AND OR as per below. Which one should I be using?
SELECT * FROM TABLE
WHERE FIELDA IS NOT NULL
AND FIELDB IN (ETC,ETC)
OR FIELDC IN (ETC,ETC)
or
SELECT * FROM TABLE
WHERE FIELDA IS NOT NULL
AND
(FIELDB IN (ETC,ETC)
OR FIELDC IN (ETC,ETC))
Cheers,
Brett
ASKER
Hi,
Thanks for the response yet the question is not around AND/OR specifically, it is around using brackets.
Both options are using AND and OR in a similar manner yet one has the two OR options bracketed to seperate it from the first condition.
Op 1:
Where Condition 1
AND Condition 2
OR Condition 3
Op 2:
Where Condition 1
AND
(Condition 2
OR Condition 3)
Hope you get my drift?
Cheers,
Brett
Thanks for the response yet the question is not around AND/OR specifically, it is around using brackets.
Both options are using AND and OR in a similar manner yet one has the two OR options bracketed to seperate it from the first condition.
Op 1:
Where Condition 1
AND Condition 2
OR Condition 3
Op 2:
Where Condition 1
AND
(Condition 2
OR Condition 3)
Hope you get my drift?
Cheers,
Brett
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Great, thank you. So I think I was on the right track with using option 2 which will give me:
Condition 1 is true
AND
(Condition 2 OR 3 are true)
Let me know if i'm wrong!
Cheers,
Brett
Condition 1 is true
AND
(Condition 2 OR 3 are true)
Let me know if i'm wrong!
Cheers,
Brett
you got it!
that is normal
>Which one should I be using?
depends on what result you want.
if you use AND, both fields must match, if you use OR, either field match will return the row.