In MariaDB, SIGN()
is a built-in function that returns the sign of its argument as -1
, 0
, or 1
, depending on whether the argument is negative, zero, or positive.
Syntax
The syntax goes like this:
SIGN(X)
Where X
is the value for which to return the sign.
Example 1
Here’s an example to demonstrate:
SELECT SIGN(9);
Result:
+---------+ | SIGN(9) | +---------+ | 1 | +---------+
In this example, the value is positive, and so 1
is returned.
Example 2
Here are some more values to demonstrate the possible outputs:
SELECT
SIGN(8),
SIGN(-8),
SIGN(0);
Result:
+---------+----------+---------+ | SIGN(8) | SIGN(-8) | SIGN(0) | +---------+----------+---------+ | 1 | -1 | 0 | +---------+----------+---------+
Non-Numeric Arguments
Here’s an example of what happens when we provide non-numeric arguments:
SELECT SIGN('Nine');
Result:
+--------------+ | SIGN('Nine') | +--------------+ | 0 | +--------------+ 1 row in set, 1 warning (0.000 sec)
Let’s see the warning:
SHOW WARNINGS;
Result:
+---------+------+------------------------------------------+ | Level | Code | Message | +---------+------+------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Nine' | +---------+------+------------------------------------------+
Null Argument
SIGN()
returns null
if its argument is null
:
SELECT SIGN(null);
Result:
+------------+ | SIGN(null) | +------------+ | NULL | +------------+
Incorrect Parameter Count
Calling SIGN()
with the wrong number of arguments, or without any arguments results in an error:
SELECT SIGN();
Result:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SIGN'
And:
SELECT SIGN(10, 2);
Result:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SIGN'