Oracle
 sql >> Database >  >> RDS >> Oracle

SQL:mantiene l'ordine in base ai parametri della query

Inserisci i valori in una tabella temporanea e unisci la tua selezione a quella.

Puoi quindi eseguire un ordine naturale sulla colonna della tabella temporanea.

CREATE GLOBAL TEMPORARY TABLE sort_table (
  value       VARCHAR2(100),
  sort_order  NUMBER
) ON COMMIT DELETE ROWS;

INSERT INTO sort_table VALUES ('B123',1);
INSERT INTO sort_table VALUES ('B483',2);
... etc. ...

select * from mytable
inner join sort_table
on mytable.mycolumn = sort_table.value
order by sort_table.sort_order;

Per cancellare la tabella temporanea, basta COMMIT .