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
]実行してみると・・・、
ふむふむ、数値>0 が 1、数値=0 が 0、数値<0 が -1、NULL は NULL で返されました。これに合わせてDecode
してあげると実務でも使えそうですね。
まとめ
Oracle SQLで数値の符号(SIGN)を求める方法を紹介しました。
会計の世界ではプラスマイナスの符号の代わりに「Debit/Credit」を表す記号などで管理されています。損益計算書ではマイナス(△)表記がありますし、符号を求める機会は多いと思います。
しっかり覚えておきたいですね。
おつかれさまでした。