Forum
Arkadaşlar şu şekilde bir tablom var diyelim:
ID | GRUP | KOD |
1 | 10 | R1 |
2 | 10 | R2 |
3 | 10 | R3 |
4 | 10 | R4 |
5 | 11 | R5 |
6 | 11 | R6 |
Öyle bir SELECT sorgusu yazmak istiyorum ki örneğin WHERE kısmında KOD=(R1,R2,R3) yazınca bana GRUP olarak 10 değeri dönmeli fakat KOD=(R1,R8,R3) yazdığımda bana NULL dönmeli çünkü R8 in tabloda GRUP karşılığı bulunmuyor. Ben şu şekilde yazmaya çalıştım:
SELECT GRUP FROM TBL_KODLAR WHERE KOD IN('R1','R2','R3') GROUP BY GRUP bu sorguda istediğim gibi 10 değeri dönüyor fakat bu sorguda da
SELECT GRUP FROM TBL_KODLAR WHERE KOD IN('R1','R8','R3') GROUP BY GRUP bana 10 dönüyor ama tabloda R8 yok, bu mantığın yanlış olduğunu biliyorum. Sonuçta IN kayıtları OR işlemine göre filtreliyor. Bu duruma nasıl çözüm bulabilirim?
Select cümlesi yazarken Case kullanarak bunu bir kerede yapabilirsin.
Select
case
when Kod in ((R1,R8,R3)) then 10
when KOD IN('R1','R2','R3') then 'null' end
from XYZ
gibi birşey kullanmalısın. Internetten yardım alabilirsin.