2022年6月18日土曜日

SQLite3 数値の絶対値を求める (abs(X))

概要

数値の絶対値を求めるには関数abs()を使用する。

構文


abs(X)
                

実行例


sqlite> select
   ...>     id
   ...>     , value
   ...>     , abs(value)
   ...> from
   ...>     test
   ...> ;
┌────┬────────┬────────────┐
│ id │ value  │ abs(value) │
├────┼────────┼────────────┤
│ 1  │ 123.4  │ 123.4      │
│ 2  │ -567.8 │ 567.8      │
└────┴────────┴────────────┘
                

例外の事例

NULLを引数に渡した場合はNULLが返る

sqlite> .nullvalue [null]
sqlite> select abs(NULL);
[null]
                    
文字列など変換できない値を引数に渡した場合、0.0が返る

エラーにならないので気づきにくい。


sqlite> select abs('abcdefg');
0.0
                    
「-9223372036854775808」を引数に渡した場合、エラーが返る

sqlite> select abs(-9223372036854775808);
Runtime error: integer overflow
                    

参考URL