Oracle PL/SQL Tutorial/Numerical Math Functions/ABS

Материал из SQL эксперт
Перейти к: навигация, поиск

ABS(10)

   <source lang="sql">

SQL> select ABS(10) from dual;

  ABS(10)

       10</source>
   
  

ABS(-10) (2)

   <source lang="sql">

SQL> select ABS(-10) from dual;

 ABS(-10)

       10</source>
   
  

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:



   <source lang="sql">

SQL> SELECT ABS(10), ABS(-10) FROM dual;

  ABS(10)   ABS(-10)

----------
       10         10

SQL></source>


SQRT and ABS

   <source lang="sql">

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></source>


Use ABS for column data

   <source lang="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> 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></source>