Bonjour,
Je récupère des valeurs dans une table avec un Select, et je souhaite afficher J+X ou J-X en fonction de la parité de mes valeurs X.
Comment faire cela ?
Merci d'avance !
Bonjour,
Je récupère des valeurs dans une table avec un Select, et je souhaite afficher J+X ou J-X en fonction de la parité de mes valeurs X.
Comment faire cela ?
Merci d'avance !
Bonjour,
Vous pouvez tester qu'un nombre est pair avec l'opérateur arithmétique modulo, représenté par % :
Retourne 0
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT 962 % 2
Retourne 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT 961 % 2
Exemple d'utilisation :
Retourne 8
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 DECLARE @J INT, @X INT SELECT @J = 10, @X = 2 SELECT @J + CASE WHEN @X % 2 = 0 THEN -@X -- Pair ELSE @X -- Impair END
Retourne 11
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 DECLARE @J INT, @X INT SELECT @J = 10, @X = 1 SELECT @J + CASE WHEN @X % 2 = 0 THEN -@X -- Pair ELSE @X -- Impair END
@++![]()
Elsuket,
Merci beaucoup pour ces précisions, mais j'ai dit n'importe-quoi
Je ne voulais pas tester la parité, mais le SIGNE des nombres...
pourriez-vous m'aider à nouveau ? merci d'avance !![]()
Bonjour,
elsuket t'as donné la réponse, à se demander si tu l'as lu ; car je pense qu'il est à la portée de tout le monde de comprendre que remplacer le test de modulo par un test X > 0 répond à ton besoin.
Cela fait un petit moment que je n'ai pas fait de mathématiques
Par contre je ne comprends pas : si vous écrivez J + X, quelle que soit la valeur, positive ou négative, de X, elle est directement additionnée (la soustraction étant un cas particulier d'addition) à J.
Pouvez-vous être plus précis ?
@++![]()
Merci Judah de m'expliquer que tester si X > 0 s'écrit X > 0.
Faire ce test dans un select, j'ai essayé sans succès (voir plus bas).
Sinon Elsuket désolé j'ai pas été très clair :
par J + X j'entends : "J + 5" ou "J - 4", avec la lettre "J" telle quelle
Donc en fait je cherche un moyen d'écrire en propre qqchose comme ça :
select
(if X > 0 then 'J + ' + cast (X AS varchar) else 'J ' + cast (X AS varchar))
from...
where...
Voilà, mais je suis plus une quiche en SQL qu'en maths....
Partager