Click here to Skip to main content
15,888,401 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hello,

I am trying to apply IF/ELSE or CASE/WHEN to my select statement but I am not successful. Can someone help me how to write this?

My query is:
SQL
SELECT P.*
FROM PTABLE P, MTABLE M, NTABLE N
WHERE 
    CASE 
       WHEN P.MATERIAL IS NOT NULL THEN M.MATERIAL = N.MATERIAL
       WHEN P.MATERIAL IS NULL THEN M.MATERIAL = P.MATERIAL
    END

I tried that but I get error on that query. As an alternative I tried appliying if else but no good.
So my statement should be something like
SQL
IF P.MATERIAL IS NOT NULL THEN
M.MATERIAL = N.MATERIAL 
ELSE 
M.MATERIAL = P.MATERIAL

Thanks in advance
Posted
Updated 5-May-13 20:28pm
v2

Try This,
SQL
SELECT P.*
FROM PTABLE P
LEFT JOIN MTABLE M ON P.MATERIALID = M.MATERIALID
LEFT JOIN NTABLE R ON P.MATERIALID = N.MATERIALID
WHERE
    M.MATERIAL = CASE WHEN P.MATERIAL IS NOT NULL THEN N.MATERIAL ELSE P.MATERIAL END

Happy Coding!
:)
 
Share this answer
 
Comments
wonder-FOOL 6-May-13 2:38am    
Thank you sir.
Aarti Meswania 6-May-13 2:42am    
I am Girl not sir
Welcome!
Glad to help you! :)
Hi...

Use this Query with Decode function

SELECT P.*
FROM PTABLE P,MTABLE M,NTABLE R
WHERE P.MATERIALID = M.MATERIALID
  AND P.MATERIALID = N.MATERIALID
  AND P.MATERIAL = DEOCDE(P.MATERIAL,NULL,P.MATERIAL,N.MATERIAL)



If you have any clarification,please don't hesitate to contact me. Thank you.
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900