MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie SIGN() in MariaDB funktioniert

In MariaDB SIGN() ist eine eingebaute Funktion, die das Vorzeichen ihres Arguments als -1 zurückgibt , 0 , oder 1 , abhängig davon, ob das Argument negativ, null oder positiv ist.

Syntax

Die Syntax lautet wie folgt:

SIGN(X)

Wobei X ist der Wert, für den das Vorzeichen zurückgegeben werden soll.

Beispiel 1

Hier ist ein Beispiel zur Veranschaulichung:

SELECT SIGN(9);

Ergebnis:

+---------+
| SIGN(9) |
+---------+
|       1 |
+---------+

In diesem Beispiel ist der Wert positiv, also 1 zurückgegeben wird.

Beispiel 2

Hier sind einige weitere Werte, um die möglichen Ausgaben zu demonstrieren:

SELECT 
    SIGN(8),
    SIGN(-8),
    SIGN(0);

Ergebnis:

+---------+----------+---------+
| SIGN(8) | SIGN(-8) | SIGN(0) |
+---------+----------+---------+
|       1 |       -1 |       0 |
+---------+----------+---------+

Nicht numerische Argumente

Hier ist ein Beispiel dafür, was passiert, wenn wir nicht-numerische Argumente angeben:

SELECT SIGN('Nine');

Ergebnis:

+--------------+
| SIGN('Nine') |
+--------------+
|            0 |
+--------------+
1 row in set, 1 warning (0.000 sec)

Sehen wir uns die Warnung an:

SHOW WARNINGS;

Ergebnis:

+---------+------+------------------------------------------+
| Level   | Code | Message                                  |
+---------+------+------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Nine' |
+---------+------+------------------------------------------+

Null-Argument

SIGN() gibt null zurück wenn sein Argument null ist :

SELECT SIGN(null);

Ergebnis:

+------------+
| SIGN(null) |
+------------+
|       NULL |
+------------+

Falsche Parameteranzahl

Aufruf von SIGN() mit der falschen Anzahl von Argumenten oder ohne Argumente führt zu einem Fehler:

SELECT SIGN();

Ergebnis:

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

Und:

SELECT SIGN(10, 2);

Ergebnis:

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