ручная сортировка объединенного текста (не ASC или DESC)

У меня есть этот SQL с "UNION". Часть «ОТ» опущена. Этот SQL генерирует пакетный файл, в котором важен порядок команд.

SELECT    'DISCONNECT ent_user  FROM job_code WITH user_id ="'
       || a.user_id
       || '" , jc_name = "'
       || b.jc_name
       || '";'
  FROM 
  [...]
UNION
SELECT    'DISCONNECT rss_user  FROM user_group WITH rss_user_name = "'
       || a.user_id
       || '"  rss_name = "'
       || b.rss_name
       || '" rss_type = "'
       || b.rss_type
       || '" , ug_name = "'
       || b.ug_name
       || '";'
  FROM 
  [...]
UNION
SELECT    'DELETE rss_user WITH rss_user_name = "'
       || a.user_id
       || '"  rss_name = "'
       || b.rss_name
       || '" rss_type = "'
       || b.rss_type
       || '";'
  FROM 
  [...]

Я хочу иметь эту сортировку. Это вручную не ASC или DESC.

1) DISCONNECT ent_user  FROM job_code ... 
2) DISCONNECT rss_user  FROM user_group ... 
3) DELETE rss_user WITH rss_user_name

Как это сделать?


person Josefine    schedule 10.01.2012    source источник


Ответы (1)


Выберите буквальный числовой столбец вместе с вашим кодом, а затем упорядочите его:

SELECT code_text
  FROM (
        SELECT <code> AS code_text, 1 AS my_order
        ...
        UNION
        SELECT <code> AS code_text, 2 AS my_order
        ...
        [etc.]
       )
 ORDER BY my_order;

Затем вы можете установить любой порядок, который вы хотите.

Надеюсь, поможет...

person Ollie    schedule 10.01.2012