SQL syntaxe incorrecte vers...

Posted Wednesday, June 28, 2006

Filed under: ,

SQL peut être très énervant quand une requête sans erreur ne veut pas fonctionner...
Mais comme c'est souvent le cas, l'erreur est humaine. Après m'être arraché les cheveux pendant plus d'une journée, voici un petit truc évident qu'il est bon de rappeler.

En l'occurrence, l'analyseur de requête de SQL SERVER me renvoyait : sql syntaxe incorrecte vers '='.
Ce genre de message veut souvent dire que le parseur (l'analyseur de requêtes) a perdu le fil en cours de route. L'erreur est à chercher plus haut.

Dans mon cas, ma syntaxe était incorrecte car j'utilisait un SUM à l'intérieur d'un IIF. Ledit IIF doit être autour du SUM (ou AVG, MIN, etc) car SQL s'attend à retourner une colonne, même nulle.

  1. SELECT col1, IIF(SUM(col2 = 0, col2, 0)) AS sum FROM table
  2. SELECT col1, SUM(IIF(col2 = 0, col2, 0)) AS sum FROM table


Un IIF ne peut pas renvoyer ou non de résultat : la requête 1 ne pourra pas être éxécutée.
Dans la seconde par contre, la fonction SUM renverra toujours un résultat (sum) qui sera calculé en fonction de col2. Le sgbd est content, et mes cheveux aussi... :-)

Comments disabled because of spammers.

comment #1 On 18/02, René wrote :

Merci pour ce commentaire, ça ma donné de bonne pistes pour comprendre mes erreurs.

Technorati Profile