絶対値を求める、数値の符号を求める

syntax

ABS ( expr )
SIGN ( expr )
return [ BINARY_DOUBLE | BINARY_FLOAT | NUMBER ]

parameter

expr数値表現された文字列式、数値式

return

  • 絶対値を戻す。数値の符号を [ +1 | 0 | -1 ] または NULLで戻す。

avail

  • SQL および PL/SQL の両方で使用可能。

ABS 関数の内容

絶対値を戻す。データ型は expr と同じ。数値に変換できる文字列の場合には NUMBER 型で戻す。

SIGN 関数の内容

符号を戻す。符号は [ -1 | 0 | +1 ] または NULL 。
expr < 0 ... -1
expr = 0 ... 0
expr > 0 ... +1
expr IS NULL ... NULL

ABS 使用例

num = NUMBER 型

SQL> set null '<NULL>'
SQL> select num, ABS(num) from abs_sample;
 
       NUM   ABS(NUM)
---------- ----------
         0          0
      -987        987
       123        123
<NULL>     <NULL>

SQL*Plus の NULL 表示

d = BINARY_DOUBLE 型

SQL> select d, ABS(d) from abs_sample;
 
         D     ABS(D)
---------- ----------
         0          0
-9.87E+002  9.87E+002
 1.23E+002  1.23E+002
<NULL>     <NULL>

SIGN 使用例

DECODE 関数 との応用例

SQL> select num, SIGN(num),
  2         decode(SIGN(num), -1, '負数', 0, 'ゼロ', 1, '正数', NULL, '空') "符号"
  3   from abs_sample;
 
       NUM  SIGN(NUM) 符号
---------- ---------- --------
         0          0 ゼロ
       123          1 正数
      -987         -1 負数
<NULL>     <NULL>     空


SQL 関数 - ABS,SIGN 関連

 
アルファベット別 関数一覧 ショートカット
ABCDEFG
HILMNOP
RSTUVWX
日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle のライセンスがわからない…
Oracle Direct (ネットで聞いても最後はここで要確認)