W MariaDB, SIGN() jest wbudowaną funkcją, która zwraca znak swojego argumentu jako -1 , 0 lub 1 , w zależności od tego, czy argument jest ujemny, zerowy czy dodatni.
Składnia
Składnia wygląda tak:
SIGN(X)
Gdzie X jest wartością, dla której należy zwrócić znak.
Przykład 1
Oto przykład do zademonstrowania:
SELECT SIGN(9); Wynik:
+---------+ | SIGN(9) | +---------+ | 1 | +---------+
W tym przykładzie wartość jest dodatnia, więc 1 jest zwracany.
Przykład 2
Oto kilka innych wartości, które zademonstrują możliwe wyniki:
SELECT
SIGN(8),
SIGN(-8),
SIGN(0); Wynik:
+---------+----------+---------+ | SIGN(8) | SIGN(-8) | SIGN(0) | +---------+----------+---------+ | 1 | -1 | 0 | +---------+----------+---------+
Argumenty nieliczbowe
Oto przykład tego, co się dzieje, gdy dostarczamy argumenty nieliczbowe:
SELECT SIGN('Nine'); Wynik:
+--------------+
| SIGN('Nine') |
+--------------+
| 0 |
+--------------+
1 row in set, 1 warning (0.000 sec) Zobaczmy ostrzeżenie:
SHOW WARNINGS; Wynik:
+---------+------+------------------------------------------+ | Level | Code | Message | +---------+------+------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Nine' | +---------+------+------------------------------------------+
Argument zerowy
SIGN() zwraca null jeśli jego argumentem jest null :
SELECT SIGN(null); Wynik:
+------------+ | SIGN(null) | +------------+ | NULL | +------------+
Nieprawidłowa liczba parametrów
Wywołanie SIGN() z niewłaściwą liczbą argumentów lub bez żadnych argumentów powoduje błąd:
SELECT SIGN(); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SIGN'
Oraz:
SELECT SIGN(10, 2); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SIGN'