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>