Oracle PL/SQL Tutorial/Numerical Math Functions/ABS
Содержание
ABS(10)
SQL> select ABS(10) from dual;
ABS(10)
----------
10
ABS(-10) (2)
SQL> select ABS(-10) from dual;
ABS(-10)
----------
10
ABS(x) gets the absolute value of x
The absolute value of a number is that number without any positive or negative sign.
The following example displays the absolute value of 10 and - 10:
SQL> SELECT ABS(10), ABS(-10) FROM dual;
ABS(10) ABS(-10)
---------- ----------
10 10
SQL>
SQRT and ABS
SQL>
SQL>
SQL> -- create demo table
SQL> create table myTable(
2 id NUMBER(2),
3 value NUMBER(6,2)
4 )
5 /
Table created.
SQL>
SQL> -- prepare data
SQL> insert into myTable(ID, value)values (1,9)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (2,2.11)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (3,3.44)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (4,-4.21)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (5,10)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (6,3)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (7,-5.88)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (8,123.45)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (9,98.23)
2 /
1 row created.
SQL>
SQL> select * from myTable
2 /
ID VALUE
---------- ----------
1 9
2 2.11
3 3.44
4 -4.21
5 10
6 3
7 -5.88
8 123.45
9 98.23
9 rows selected.
SQL>
SQL> --The following query handles both positive and negative numbers
SQL>
SQL>
SQL> SELECT id, value, SQRT(ABS(value)) FROM myTable
2 /
ID VALUE SQRT(ABS(VALUE))
---------- ---------- ----------------
1 9 3
2 2.11 1.4525839
3 3.44 1.8547237
4 -4.21 2.05182845
5 10 3.16227766
6 3 1.73205081
7 -5.88 2.42487113
8 123.45 11.1108056
9 98.23 9.91110488
9 rows selected.
SQL>
SQL> -- clean the table
SQL> drop table myTable
2 /
Table dropped.
SQL>
SQL>
Use ABS for column data
SQL> -- create demo table
SQL> create table myTable(
2 id NUMBER(2),
3 value NUMBER(6,2)
4 )
5 /
Table created.
SQL>
SQL> -- prepare data
SQL> insert into myTable(ID, value)values (1,9)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (2,2.11)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (3,3.44)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (4,-4.21)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (5,10)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (6,3)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (7,-5.88)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (8,123.45)
2 /
1 row created.
SQL> insert into myTable(ID, value)values (9,98.23)
2 /
1 row created.
SQL>
SQL> select * from myTable
2 /
ID VALUE
---------- ----------
1 9
2 2.11
3 3.44
4 -4.21
5 10
6 3
7 -5.88
8 123.45
9 98.23
9 rows selected.
SQL>
SQL>
SQL> SELECT id, value, ABS(value)FROM myTable
2 /
ID VALUE ABS(VALUE)
---------- ---------- ----------
1 9 9
2 2.11 2.11
3 3.44 3.44
4 -4.21 4.21
5 10 10
6 3 3
7 -5.88 5.88
8 123.45 123.45
9 98.23 98.23
9 rows selected.
SQL>
SQL>
SQL> -- clean the table
SQL> drop table myTable
2 /
Table dropped.
SQL>
SQL>