概要
数値の絶対値を求めるには関数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
-
公式のabs()に関するドキュメント
https://www.sqlite.org/lang_corefunc.html#abs