59 votes

Convertir des données négatives en données positives dans SQL Server

Les données actuelles de la table sont :

   a   b
---------
 -1   5
-11   2
 -5  32

Ma demande est de convertir toutes les données en une valeur positive.

Malheureusement, j'ai oublié le nom de la fonction intégrée de SQL Server qui permet de convertir.

120voto

Lamak Points 33901

Vous pensez à la fonction ABS , qui vous donne la valeur absolue des données numériques.

 SELECT ABS(a) AS AbsoluteA, ABS(b) AS AbsoluteB
FROM YourTable

27voto

Abdul Saboor Points 775

La meilleure solution est : du positif au négatif ou du négatif au positif

Pour le négatif :

 SELECT ABS(a) * -1 AS AbsoluteA, ABS(b) * -1 AS AbsoluteB
FROM YourTable

Pour le positif :

 SELECT ABS(a) AS AbsoluteA, ABS(b)  AS AbsoluteB
FROM YourTable

10voto

Sam DeHaan Points 7096
UPDATE mytbl
SET a = ABS(a)
where a < 0

8voto

Adam Porad Points 4569

Utilisez la fonction valeur absolue ABS . La syntaxe est

 ABS ( numeric_expression )

3voto

ruddy simonpour Points 73

Une solution simple et directe utilisant la fonction CASE :

 SELECT CASE WHEN ( a > 0 ) THEN (a*-1) ELSE (a*-1) END AS NegativeA,
       CASE WHEN ( b > 0 ) THEN (b*-1) ELSE (b*-1) END AS PositiveB
FROM YourTableName

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X