2010-10-20 7 views
0

J'ai écrit cette déclaration SQLite et je reçois erreur de syntaxe sur la ligne suivante:Quel est le problème avec cette instruction SQLite3?

update List SET number = (CASE WHEN number>=3 then number++ WHEN number=1 then 3 ELSE number END) WHERE listKey=3; 

L'erreur est:

SQL error: near "WHEN": syntax error

J'ai essayé différentes versions, en ajoutant des accolades à des endroits et tout, mais ne peut pas comprendre l'erreur. Quelqu'un peut-il m'aider s'il vous plaît avec ceci?

Répondre

4

Si SQLite utilise la syntaxe "++", je ne l'ai jamais vu. Essayez plutôt then number + 1.

+0

Merci beaucoup. Ça a marché. En fait, j'essaie d'écrire une requête quelque chose comme: if (number> = 3 && nextNumberinlist = number + 1) alors numéro ++ else number. Pouvez-vous me donner une idée de comment faire cela? – user333422

+0

Qu'est-ce que "nextNumberInList"? Est-ce le numéro de la ligne "suivante" dans le tableau? Et quelle est la "prochaine" ligne (SQL n'a pas de concept de l'ordre des lignes par défaut). Je vous suggère de publier une version complète de votre question (y compris la structure de la table, les données d'entrée de l'échantillon et l'échantillon de sortie souhaité) dans une question distincte. –

Questions connexes