Clause dynamic WHERE

J'ai l'exemple de select groupé:

SELECT cod, value, type FROM table GROUP BY cod, value, type 

Je reçois des résultats:

 cod | value | type 1 | 1000 | A 1 | 570 | B 2 | 2000 | A 3 | 1500 | A 3 | 200 | B 

Mais pour seulement cod = 1 devrait renvoyer la valeur de type = A Résultat désiré:

 cod | value | type 1 | 1000 | A 2 | 2000 | A 3 | 1500 | A 3 | 200 | B 

Je pense que la déclaration CASE dans WHERE mais ont des limites et ne fonctionne pas correctement. Comment je peux le faire?

 WHERE CASE WHEN cod = 1 THEN type = 'A' END 

 WHERE Type = CASE WHEN cod = 1 THEN 'A' else Type END 

Vous voilà:

 SELECT cod, value, type FROM table WHERE cod != 1 OR type='A' GROUP BY cod, value, type 

Une autre bonne option – Pas le meilleur moyen ici mais une option utile.

 SELECT cod, value, type FROM table GROUP BY cod, value, type EXCEPT SELECT cod, value, type FROM table WHERE cod = 1 AND type <> 'A' GROUP BY cod, value, type