Logan Wlv
Logan Wlv

Reputation: 3734

SQL combine basic order by and custom order by

I am using Oracle database and I am trying to combine a basic Order By and a custom one in one of my query.

Here's my table :

table1 
-----------------
C1 | C2 | C3 | C4

I am trying to order it like that :

SELECT C1,C2,C3,C4 FROM table1
ORDER BY C1, C2, C3, ( 
CASE C4
   WHEN C4 = 'value1' THEN 1
   WHEN C4 = 'value2' THEN 2
   WHEN C4 = 'value3' THEN 3
END
)

But I'm getting "Missing keyword" and I can't find which one, any ideas?

Upvotes: 1

Views: 40

Answers (1)

D-Shih
D-Shih

Reputation: 46219

You can try

SELECT C1,C2,C3,C4 FROM table1
ORDER BY C1, C2, C3, ( 
CASE 
   WHEN C4 = 'value1' THEN 1
   WHEN C4 = 'value2' THEN 2
   WHEN C4 = 'value3' THEN 3
END
)

OR

SELECT C1,C2,C3,C4 FROM table1
ORDER BY C1, C2, C3, ( 
CASE C4
   WHEN 'value1' THEN 1
   WHEN 'value2' THEN 2
   WHEN 'value3' THEN 3
END
)

Upvotes: 2

Related Questions