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'