2012-03-19 12 views
34

I dati attuali della tabella è:Convertire dati negativi in ​​dati positivi in ​​SQL Server

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

La mia richiesta è quella di convertire i dati in ogni valore positivo.

Sfortunatamente, ho dimenticato il nome della funzione build-in di SQL Server che abilita la conversione.

+2

sql server ... funzione abs – mservidio

+1

Non preoccupatevi di loro. Buona domanda e buone risposte fornite! –

risposta

72

Stai pensando nella funzione ABS, che ti dà il valore assoluto di un dato numerico.

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

Utilizzare la funzione valore assoluto ABS. La sintassi è

ABS (numeric_expression) 
6
UPDATE mytbl 
SET a = ABS(a) 
where a < 0 
16

La soluzione migliore è: da positivo a negativo o da negativo a positivo

Per negativa:

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

Per positiva:

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

Le migliori soluzioni derivano dalla lettura attenta della domanda. L'OP voleva tutto + ve non tutto invertito. – Jamiec

+0

D'accordo, ma sono venuto qui per trovare il positivo al negativo, e questa soluzione mi è venuta in mente e l'ho postata. e se noti che ho detto in risposta positivo a negativo e negativo a positivo. Potrebbe essere utile per qualcun altro. –

+0

ora penso che sia utile: D –

Problemi correlati