sql >> Databasteknik >  >> RDS >> MariaDB

Hur ABS() fungerar i MariaDB

I MariaDB, ABS() är en inbyggd numerisk funktion som returnerar det absoluta (icke-negativa) värdet av dess argument.

Syntax

Syntaxen ser ut så här:

ABS(X)

Där X är numret i fråga. Om X är inte ett tal, det konverteras till en numerisk typ.

Exempel

Här är ett exempel:

SELECT ABS(300);

Resultat:

+----------+
| ABS(300) |
+----------+
|      300 |
+----------+

Vi får samma resultat om talet är negativt:

SELECT ABS(-300);

Resultat:

+-----------+
| ABS(-300) |
+-----------+
|       300 |
+-----------+

Icke-numeriskt argument

Om argumentet inte är ett tal, konverteras det till en numerisk typ.

Exempel:

SELECT ABS(DATE '2020-12-10');

Resultat:

+------------------------+
| ABS(DATE '2020-12-10') |
+------------------------+
|               20201210 |
+------------------------+

Detta beror dock på argumentet/kontexten.

Det här är vad som händer när jag utelämnar DATE nyckelord:

SELECT ABS('2020-12-10');

Resultat:

+-------------------+
| ABS('2020-12-10') |
+-------------------+
|              2020 |
+-------------------+
1 row in set, 1 warning (0.000 sec)

Låt oss kolla varningen:

SHOW WARNINGS;

Resultat:

+---------+------+------------------------------------------------+
| Level   | Code | Message                                        |
+---------+------+------------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: '2020-12-10' |
+---------+------+------------------------------------------------+

Argument saknas

Anropar ABS() utan argument resulterar i ett fel:

SELECT ABS();

Resultat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ABS'

  1. cx_Oracle ansluter inte när du använder SID istället för tjänstens namn på anslutningssträngen

  2. Fyra sätt att använda Microsoft Access

  3. SQL Server 2016:Skapa en tabell från ett SQL-skript

  4. PL/pgSQL-funktioner:Hur man returnerar en normal tabell med flera kolumner med hjälp av en execute-sats