sql >> Databasteknik >  >> RDS >> Database

Hur man beräknar ett absolut värde i SQL

Problem:

Du vill hitta det absoluta värdet av ett tal.

Exempel:

Du vill beräkna det absoluta värdet (a.k.a. modul) för varje tal i kolumnen numbers från tabellen data .

nummer
-3.2
0
20

Lösning:

SELECT
  ABS(numbers) AS absolute_values
FROM data;

Resultatet är:

absoluta_värden
3.2
0
20

Diskussion:

För att beräkna det absoluta värdet av ett tal, använd ABS() fungera. Denna funktion tar ett tal som ett argument och returnerar dess värde utan minustecknet om det finns ett. Det returnerade värdet kommer alltid att vara icke-negativt – noll för argument 0, positivt för alla andra argument. Observera att det returnerade värdet kommer att skilja sig från argumentet endast om argumentet är negativt.

Om du av någon anledning bara behöver konvertera de positiva värdena till deras negativa motsvarighet och lämna de andra (d.v.s. noll och negativa) värden orörda, kan du använda ett minustecken före ABS() funktion.

SELECT
  -ABS(numbers) AS non_positive
FROM data;

Resultatet blir:

icke_positiv
-3.2
0
-20

  1. Kan en INNER JOIN erbjuda bättre prestanda än FINNS

  2. Skapa en databas i SQLite

  3. Hur man lägger till en uppslagskontroll till ett formulär i Access 2016

  4. SQL-prestanda:WHERE vs WHERE(ROW_NUMBER)