Функция SIGN определяет знак числа. Если число больше нуля - функция вернет 1, если меньше нуля - вернет -1, а если равно нулю - вернет 0.
См. также функцию ABS, которая находит модуль числа (из отрицательного делает положительное).
Синтаксис
SELECT SIGN(поле) FROM имя_таблицы WHERE условие
Примеры
Все примеры будут по этой таблице weather, если не сказано иное:
id айди |
date дата |
temperature температура |
---|---|---|
1 | 2010-06-01 | 25 |
2 | 2010-14-01 | 0 |
3 | 2010-12-01 | -25 |
Пример
Давайте определим знак температуры и запишем его в поле sign:
SELECT *, SIGN(temperature) as sign FROM weather
SQL запрос выберет следующие строки:
id айди |
date дата |
temperature температура |
sign знак температуры |
---|---|---|---|
1 | 2010-06-01 | 25 | 1 |
2 | 2010-14-01 | 0 | 0 |
3 | 2010-12-01 | -25 | -1 |
Меняем таблицу для примеров
Давайте изменим таблицу weather так, чтобы в ней хранился знак температуры, а не ее значение:
id айди |
date дата |
sign знак температуры |
---|---|---|
1 | 2010-12-01 | -1 |
2 | 2010-14-01 | 0 |
3 | 2010-06-01 | 1 |
Пример
Давайте теперь добавим новую запись в таблицу так, чтобы mySQL сам вычислил знак температуры:
INSERT INTO weather SET date='2010-12-02', sign=SIGN(-30)
SQL запрос выберет следующие строки:
id айди |
date дата |
sign знак температуры |
---|---|---|
1 | 2010-12-01 | -1 |
2 | 2010-14-01 | 0 |
3 | 2010-06-01 | 1 |
4 | 2010-12-02 | -1 |