Comment puis-je filtrer une valeur dans une colonne si une valeur dans une autre colonne est présente? J'essaie de supprimer tous les C de la colonne CODE s'il est accompagné d'un "-" dans la colonne Description.
CODE | Description A - A - B - B - C stuff
Dans la colonne "CODE", je souhaite supprimer les valeurs 'C' si la description = '-'.
Le résultat final ressemblerait au tableau ci-dessous avec le C & - supprimé.
CODE | Description A - A - B - B - C stuff C -
De notez que la colonne Description est un champ personnalisé utilisant CASE WHEN.
Dans Excel, je créerais simplement une colonne conditionnelle fictive, puis filtrerais «C» et «-». Je ne sais pas comment procéder en SQL.
3 Réponses :
Essayez :
SELECT CODE, Description FROM your_table_name WHERE (CODE Not Like 'C' And Description Not Like '-');
De plus, je vous conseille de conserver les noms de champ / colonne du même cas, comme «Code» et «Description» ou «CODE» et DESCRIPTION ». C'est une bien meilleure pratique.
Une façon d'exprimer cela utilise not
:
where code <> 'C' or Description <> '-')
Cela semble assez proche de la logique telle que vous l'exprimez.
C'est équivalent à:
where not (code = 'C' and Description = '-')
Notez que ces deux solutions supposent que code
et description
ne sont pas NULL code>. Ils peuvent également être modifiés pour gérer cela, mais cela ne semble pas nécessaire en fonction des données de la question.
select t1.Code, t1.Description from MyTable t1 where t1.code not in (select code from MyTable where Description not like '-') union All select * from MyTable where Description not like '-' order by code asc primary:result: