The usage of `TO_CHAR` function in a `ORDER BY` is almost always a mistake. The column value will be ordered alphabetically instead of being ordered according its datatype.

## Noncompliant Code Example

Suppose we have the data below in the `EMP` table:

empno | hiredate
1 | 2019-10-01
5 | 2019-10-10
15 | 2018-10-02
20 | 2018-10-20

The queries below return an unwanted result:

`select empno from emp order by to_char(empno);`

empno
1
15
20
5

`select hiredate from emp order by to_char(hiredate, 'dd-mm-rrrr');`

hiredate
01-OCT-19
02-OCT-18
10-OCT-19
20-OCT-18

## Compliant Code Example

To order these columns correctly we must remove the `TO_CHAR` call.

`select empno from emp order by empno;`

empno
1
5
15
20

`select hiredate from emp order by hiredate;`

hiredate
02-OCT-18
20-OCT-18
01-OCT-19
10-OCT-19