Question: May I know is there any solution to get the result without ordering in Oracle? It is because when I execute the query as follows, it seems to automatically helps me to sort it by ID field.

```
SELECT ID FROM USER WHERE ID IN (5004, 5003, 5005, 5002, 5008);

Actual results          Expected results
---5002                 ---5004
---5003                 ---5003
---5004                 ---5005
---5005                 ---5002
---5008                 ---5008

```

Million thanks if you guys have solutions on this.

Answer: 
This is one way I've seen in the past using `INSTR`:

```
SELECT *
FROM YourTable
WHERE ID IN (5004, 5003, 5005, 5002, 5008)
ORDER BY INSTR ('5004,5003,5005,5002,5008', id)

```

[SQL Fiddle Demo](http://sqlfiddle.com/#!4/0c283/1)

I've also seen use of `CASE` like this:

```
ORDER BY
  CASE ID 
    WHEN 5004 THEN 1   
    WHEN 5003 THEN 2   
    WHEN 5005 THEN 3   
    WHEN 5002 THEN 4   
    WHEN 5008 THEN 5
  END 

```
Another solution that I found here.

```
select ID 
    from USER 
where ID in (5004, 5003, 5005, 5002, 5008)
    order by decode(ID, 5002, 1, 5003, 2, 5004, 3, 5005, 4, 5008, 5);

```

order by decode(COLUMN NAME, VALUE, POSITION)

\*Note: Only need to repeat the VALUE and POSITION

And yah, thanks for all the responds! I am really appreciate it.