MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment SIGN() fonctionne dans MariaDB

Dans MariaDB, SIGN() est une fonction intégrée qui renvoie le signe de son argument sous la forme -1 , 0 , ou 1 , selon que l'argument est négatif, nul ou positif.

Syntaxe

La syntaxe ressemble à ceci :

SIGN(X)

X est la valeur pour laquelle renvoyer le signe.

Exemple 1

Voici un exemple pour illustrer :

SELECT SIGN(9);

Résultat :

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

Dans cet exemple, la valeur est positive, donc 1 est renvoyé.

Exemple 2

Voici quelques valeurs supplémentaires pour illustrer les sorties possibles :

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

Résultat :

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

Arguments non numériques

Voici un exemple de ce qui se passe lorsque nous fournissons des arguments non numériques :

SELECT SIGN('Nine');

Résultat :

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

Voyons l'avertissement :

SHOW WARNINGS;

Résultat :

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

Argument nul

SIGN() renvoie null si son argument est null :

SELECT SIGN(null);

Résultat :

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

Nombre de paramètres incorrect

Appel de SIGN() avec le mauvais nombre d'arguments, ou sans aucun argument entraîne une erreur :

SELECT SIGN();

Résultat :

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

Et :

SELECT SIGN(10, 2);

Résultat :

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