The second argument of TRUNC, precision, may be negative, which means displacement to the left of the decimal point : TRUNC « Numerical Math Functions « Oracle PL/SQL Tutorial






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, TRUNC(value,-1) FROM myTable
  2  /

        ID      VALUE TRUNC(VALUE,-1)
---------- ---------- ---------------
         1          9               0
         2       2.11               0
         3       3.44               0
         4      -4.21               0
         5         10              10
         6          3               0
         7      -5.88               0
         8     123.45             120
         9      98.23              90

9 rows selected.

SQL>
SQL>
SQL> -- clean the table
SQL> drop table myTable
  2  /

Table dropped.

SQL>








14.26.TRUNC
14.26.1.TRUNC(x, [y]) gets the result of truncating the number x to an optional y decimal places.
14.26.2.TRUNC column value
14.26.3.TRUNC may have a second argument to handle precision: means the distance to the right of the decimal point
14.26.4.The second argument of TRUNC defaults to 0
14.26.5.The second argument of TRUNC, precision, may be negative, which means displacement to the left of the decimal point
14.26.6.TRUNC(5.75)
14.26.7.TRUNC(5.75, 1)
14.26.8.TRUNC(5.75, -1) (2)