Oracle: Custom order by

SELECT * FROM DM_MATRIX
WHERE DCODE
IN ('D021',
'D013',
'D004',
'D005',
'D015',
'D009',
'D011',
'D012',
'D016',
'D017',
'D003',
'D006',
'D010',
'D022',
'D023',
'D001',
'D002')
AND settingid = 'ABCEDF'
ORDER BY
decode(diseasecode,
'D021',1,
'D013',2,
'D004',3,
'D005',4,
'D015',5,
'D009',6,
'D011',7,
'D012',8,
'D016',9,
'D017',10,
'D003',11,
'D006',12,
'D010',13,
'D022',14,
'D023',15,
'D001',16,
'D002',17
)

if you just want ordered list:
SELECT decode(rownum,
1,'D021',
2,'D013',
3,'D004',
4,'D005',
5,'D015',
6,'D009',
7,'D011',
8,'D012',
9,'D016',
10,'D017',
11,'D003',
12,'D006',
13,'D010',
14,'D022',
15,'D023',
16,'D001',
17,'D002'
) diseasecode, ROWNUM orderby FROM dual CONNECT BY LEVEL <=17;

Comments

Popular Posts