WITH T AS
 (SELECT 'B' C1, 'B1' C2, 10 C3, 2 C4
    FROM DUAL
  UNION ALL
  SELECT 'B' C1, 'B3' C2, 20 C3, 2 C4
    FROM DUAL
  UNION ALL
  SELECT 'B' C1, 'B2' C2, 30 C3, 2 C4
    FROM DUAL
  UNION ALL
  SELECT 'A' C1, 'A2' C2, 50 C3, 1 C4
    FROM DUAL
  UNION ALL
  SELECT 'A' C1, 'A1' C2, 10 C3, 1 C4
    FROM DUAL
  UNION ALL
  SELECT 'A' C1, 'A3' C2, 5 C3, 1 C4
    FROM DUAL
  UNION ALL
  SELECT 'C' C1, 'C1' C2, 2 C3, 3 C4
    FROM DUAL
  UNION ALL
  SELECT 'C' C1, 'C4' C2, 6 C3, 3 C4
    FROM DUAL
  UNION ALL
  SELECT 'C' C1, 'C2' C2, 8 C3, 3 C4
    FROM DUAL
  UNION ALL
  SELECT 'C' C1, 'C3' C2, 1 C3, 3 C4
    FROM DUAL)
SELECT C1,C2,C3,C4 FROM (SELECT T.C1, C2, C3, C4, ROWNUM RN FROM T) ORDER BY C4, RN;