sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer ABS() i MariaDB

I MariaDB, ABS() er en indbygget numerisk funktion, der returnerer den absolutte (ikke-negative) værdi af sit argument.

Syntaks

Syntaksen ser sådan ud:

ABS(X)

Hvor X er det pågældende nummer. Hvis X er ikke et tal, det konverteres til en numerisk type.

Eksempel

Her er et eksempel:

SELECT ABS(300);

Resultat:

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

Vi får samme resultat, hvis tallet er negativt:

SELECT ABS(-300);

Resultat:

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

Ikke-numerisk argument

Hvis argumentet ikke er et tal, konverteres det til en numerisk type.

Eksempel:

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

Resultat:

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

Dette afhænger dog af argumentet/konteksten.

Her er, hvad der sker, når jeg udelader DATE søgeord:

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

Resultat:

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

Lad os tjekke advarslen:

SHOW WARNINGS;

Resultat:

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

Manglende argument

Kalder ABS() uden et argument resulterer i en fejl:

SELECT ABS();

Resultat:

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

  1. Får maks. værdi fra rækker og forbinder til en anden tabel

  2. Bruger gruppe efter på to felter og tæl i SQL

  3. Brug af LIKE i bindParam til en MySQL PDO-forespørgsel

  4. PowerManager.PARTIAL_WAKE_LOCK android