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)画像](https://kcfran.com/wp-content/uploads/2023/02/image-37.png)
符号が負(-)の数値をセット
![符号がマイナスの値を引数にセットしたSIGN関数の実行例(MySQL)画像](https://kcfran.com/wp-content/uploads/2023/02/image-38.png)
符号がゼロの数値をセット
![ゼロ値を引数にセットしたSIGN関数の実行例(MySQL)画像](https://kcfran.com/wp-content/uploads/2023/02/image-39.png)
符号がマイナスの小数点をセット
![マイナスを引数にセットしたSIGN関数の実行例(MySQL)画像](https://kcfran.com/wp-content/uploads/2023/02/image-41.png)
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)](https://kcfran.com/wp-content/uploads/2023/02/image-40.png)