Oracle SQLで数値の符号(SIGN)を求める方法

Oracle SQLで数値の符号(SIGN)を求める方法です。

Oracle SQLで数値の符号(SIGN)を求める方法

数値の符号とは、正負のしるしのことを指します。NUMBER型に入っている値がプラスなのかマイナスなのかを抽出します。抽出するには SIGN関数 を利用します。

ここでは Oracle SQLで数値の符号を求めるSIGN関数の使い方 を紹介します。


SIGN関数の仕様

数値の符号を求めるSIGN関数を理解しておきましょう。

文法:SIGN( n )
戻り値:数値型(1:正 -1:負 0:ゼロ)

SIGN関数は、数値 n の符号を求める関数です。

サンプルテーブルとデータ

今回使うサンプルテーブルとデータです。

CREATE TABLE EXNUMTBL (
  EXNUM NUMBER(12,7)
);
INSERT INTO EXNUMTBL VALUES(0.123);
INSERT INTO EXNUMTBL VALUES(-0.456);
INSERT INTO EXNUMTBL VALUES(-100);
INSERT INTO EXNUMTBL VALUES(200);
INSERT INTO EXNUMTBL VALUES(0);
INSERT INTO EXNUMTBL VALUES(null);

サンプル

SIGN関数を使ったサンプルSQLです。

SELECT
 EXNUM
,SIGN(EXNUM)
,DECODE(SIGN(EXNUM),'1','+','0','0','-1','-','0') 符号
FROM EXNUMTBL
]

実行してみると・・・、

SIGN関数を使ったサンプルSQL

ふむふむ、数値>0 が 1、数値=0 が 0、数値<0 が -1、NULL は NULL で返されました。これに合わせてDecodeしてあげると実務でも使えそうですね。

まとめ

Oracle SQLで数値の符号(SIGN)を求める方法を紹介しました。

会計の世界ではプラスマイナスの符号の代わりに「Debit/Credit」を表す記号などで管理されています。損益計算書ではマイナス(△)表記がありますし、符号を求める機会は多いと思います。

しっかり覚えておきたいですね。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。