SQL道場 算術関数 SIGN/SGN関数

SQLで数値の符号(プラス、マイナス)を得るSIGN/SGN関数について記載しています。

対応データベースSQL Server MySQL Oracle PostgreSQL DB2 Access

SIGN/SGN関数の文法

SELECT SIGN(数値) FROM テーブル
SELECT SGN(数値) FROM テーブル
引数数値数値型(任意の数値)
返値数値型 
符号が負なら -1
0なら 0
符号が正なら 1

SIGN関数は指定された数値の符号が負なら-1、正なら1、0なら0で返します。NULLをセットした場合、NULLが返されます。

文字列をセットした場合は、エラーを返します。

実行例

MySQLの実行例

MySQLはSGN関数はサポートされていません。

/* 符号が正(+)の数値をセット */
SELECT SIGN(10) as abs_value;

/* 符号が負(-)の数値をセット */
SELECT SIGN(-20) as abs_value;

/* 符号がゼロの数値をセット */
SELECT SIGN(0) as abs_value;

/* 符号がマイナスの小数点をセット */
SELECT SIGN(-50.2) as abs_value;

符号が正(+)の数値をセット

符号がプラスの値を引数にセットしたSIGN関数の実行例(MySQL)画像

符号が負(-)の数値をセット

符号がマイナスの値を引数にセットしたSIGN関数の実行例(MySQL)画像

符号がゼロの数値をセット

ゼロ値を引数にセットしたSIGN関数の実行例(MySQL)画像

符号がマイナスの小数点をセット

マイナスを引数にセットしたSIGN関数の実行例(MySQL)画像

SQLServerの実行例

SQLServerはSGN関数はサポートされていません。

/* 符号が正(+)の数値をセット */
SELECT SIGN(10) as abs_value;
/* 符号が負(-)の数値をセット */
SELECT SIGN(-20) as abs_value;
/* 符号がゼロの数値をセット */
SELECT SIGN(0) as abs_value;
/* 符号がマイナスの小数点をセット */
SELECT SIGN(-50.2) as abs_value;
SIGN関数の実行結果(SQLServer)