MS Access prend-il en charge la clause "CASE WHEN" si vous vous connectez avec ODBC?
N'prise en charge ODBC CASE WHEN
clause pour MS Access? Est-il de toute autre base de données qui ne prend pas en charge la CASE WHEN
clause? J'ai essayé la requête suivante lors de la connexion à MS Access ODBC, mais obtenir une exception.
SELECT (CASE WHEN (AGE > 10) THEN 1 ELSE 0 END) FROM demo
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '(CASE WHEN (AGE > 10) THEN 1 ELSE 0 END)'
Je vais essayer de trouver un chemin commun qui fonctionne pour la plupart de la base de données pour générer (calculer) la nouvelle " boolean colonnes avec une expression de comparaison tout en se connecter avec ODBC. En fait, MS Access soutenir la comparaison dans la clause SELECT, mais, pour certains d'autres bases de données de CAS de la clause sont nécessaires. Pour MS Access, SQL peut être
SELECT AGE > 10 FROM demo
mais dans d'autres, il faut être
SELECT (CASE WHEN (AGE > 10) THEN 1 ELSE 0 END) FROM demo
source d'informationauteur Aaron
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
IIF
énoncé, comme dans l'exemple suivant:Puisque vous êtes à l'aide de l'Accès à composer la requête, vous devez vous en tenir à l'Accès de la version de SQL.
De choisir entre plusieurs valeurs de retour, utilisez la fonction de commutateur (). Afin de traduire et d'étendre votre exemple un peu:
Le "vrai" cas est celui par défaut. Si vous ne l'avez pas, et aucun des autres cas de correspondance, la fonction retourne null.
La Site de l'Office de a de la documentation sur ce sujet, mais leur exemple, la syntaxe de VBA et c'est également faux. J'ai donné des commentaires sur ce sujet, mais vous devriez être bien suivant l'exemple ci-dessus.
J'ai eu à utiliser un multiple IIF instruction pour créer un résultat similaire dans l'ACCÈS SQL.
Tous les autres resteront Null.