Clause where avec imbriqué plusieurs conditions
Je veux récupérer des données avec les conditions dans WHERE
clause.
Voici ma table, quelque chose comme:
Name Location Age
----------------------
AAA Bhuj 24
BBB Mumbai 22
CCC Bhuj 18
DDD Bhuj 27
EEE Mumbai 26
Ma condition dans WHERE
clause est:
if location = 'Bhuj' then Age>20 else if location = 'Mumbai' then Age>25
J'essaie ce code pour obtenir ceci:
SELECT * FROM testing
WHERE
CASE Location WHEN 'Bhuj' THEN Age>20
WHEN 'Mumbai' THEN Age>25
END;
Ce code fonctionne très bien pour MySQL (voir ce SQLFiddle) mais ne fonctionne pas pour SQL Server (voir ce SQLFiddle) et de donner le message d'erreur suivant:
Syntaxe incorrecte près de '>'.: SÉLECTIONNEZ * à PARTIR de l'examen de cas Lorsque l'Emplacement de 'Bhuj' alors l'Âge>20 Lorsque "Mumbai", alors Age>25 fin
Toute suggestion?
Ne voyons pas de raison de downvote la question. Upvoted 🙂
le cas n'est pas nécessaire ici
Ma requête est différent et complexe. Où je dois utiliser
le cas n'est pas nécessaire ici
Ma requête est différent et complexe. Où je dois utiliser
CASE
déclaration. Je montre simplement ici.
OriginalL'auteur hims056 | 2012-08-30
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur podiluska
Je pense que c'est ce que vous essayez d'atteindre
Vérifier SQLFiddle
Mise à JOUR:
Cas instruction renvoie une valeur, vous ne pouvez pas avoir une condition à l'intérieur.
CASE
déclaration qui je l'ai montré dans l'exemple?Vérifier ma mise à jour.
Nous pouvons utiliser
CASE
dansWHERE
clause. Voir une autre réponse par podiluska.Je n'ai pas dit que vous ne pouvez pas utiliser le cas dans la clause where. Ce que je dis, c'est que vous ne pouvez pas avoir une condition à l'intérieur de cas. podiluska la réponse est correcte si vous vous souciez de l'aide de cas.
OriginalL'auteur hgulyan