Si une valeur dans une colonne n'est pas une ou B, puis remplacez cette valeur avec "non".
SELECT *, CASE WHEN ColA NOT IN(A,B) REPLACE (ColA, ColA, 'NO') ELSE ColA END ColA FROM dataset;
5 Réponses :
Remplacer () code> n'est pas nécessaire simplement utiliser
case code> expression:
SELECT CASE WHEN ColA NOT LIKE 'A' OR 'B' THEN 'NO' ELSE ColA END AS 'ColA' ,ColB FROM Dataset;
Une autre façon de faire cela ...
Pour être du côté de sécurité, vous devez également ajouter un comme Query strong> p> NULL code> Vérifiez également. de
Je crois que les normes SQL définies non in () code> ne doivent pas fonctionner avec des valeurs nulles.
cola pas dans ('A', 'B') code> est le même Comme écrit
cola 'a' ou colb 'B' code> et
Sélectionnez 'A' null code> ne doit jamais être vrai. P>
SELECT
(
CASE
WHEN ColA NOT IN('A','B') OR ColA IS NULL
THEN 'NO'
ELSE ColA
END
) AS ColA
, ColB
FROM
dataset
Votre code, ne doit pas compiler, donc je suppose que ce n'est pas le code réel. de Ceci produirait les résultats souhaités, sauf s'il y ait un au cas où
(1) Il manque alors code> après
quand code>.
(2) Les valeurs A code> et
B code> doivent être jointes aux guillemets simples, sinon elles seraient reconnues comme noms de colonne. de
Donc, il devrait être écrit comme suit: NULL code> valeur dans
cola code>. de
Dans le cas de null code>,
cola pas dans ('a', 'b') code> serait évaluer à
null code> et aucun remplacement n'aurait lieu. de
Vous pouvez écrire la déclaration en utilisant iff () code>
fonction comme ceci: p> cola in ('A', 'B') < / code> évalue vers
null code> alors le
FALSE code> partie de
iff () code> est renvoyé qui est renvoyé qui est
'non' non ' code> < / p> p>