Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

manually sorting concat text (not ASC or DESC)

I have this SQL with "UNION". The "FROM" part is omitted. This SQL generates a batch file where the order of commands is important.

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 
  [...]

I wish to have this sorting. This is manually not ASC or DESC.

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

Howto do that?

like image 574
Josefine Avatar asked Jan 19 '26 23:01

Josefine


1 Answers

Select a literal numeric column along with your code and then order by that:

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;

You can then set any order you want.

Hope it helps...

like image 193
Ollie Avatar answered Jan 22 '26 12:01

Ollie