25 messaggi dal 18 gennaio 2005
Ciao,
Ho un grande problema, e non so se sto scrivendo nel posto giusto.
Devo eseguire una query con un ordinamento di matricole varchar.
Non so se devo applicare una funzione sulla query o sul codice asp....
Il db è oracle, il punto è che io eseguo l'ordinamento sul campo matricola della tabella....."order by tab.matricola".
Non esiste una funzione tipo la mid...che mi restituisce i soli numeri per cui fare un ordinamento?

Se qualcuno mi sa aiutare o consigliare....grazie...
91 messaggi dal 04 gennaio 2002
Ciao.
In Oracle puoi usare la funzione CAST(nome_campo as tipodato).
Esempiio

select * from utenti order by cast(matricola as integer) desc.

Non ho sotto mano il dboracle...prova.

Se il campo matricola contiene esempio 3 lettere e 6 numeri...

select * from user order by substr(matricola,3,6)
(CONTROLLA LA SINTASSI DELLA FUNZIONE SUBSTR CHE NON MI RICORDO SE è IN BASE 0 OPURE 1)!
25 messaggi dal 18 gennaio 2005
Ho provato....ma la substr sull'order by non la esegue non da errore ma è come se non vedesse l'order by, invece se la substr la eseguo sulla select campo matricola restituisce la matricola senza la lettera.
E se provo la cast sull'order by mi dice numero non valido...
Ho provato anche as numeric ma nulla...anche se credo sia giusto integer.
Ho anche provato questo:
ORDER BY cast(substr(matricola, 2) AS integer) DESC
ma mi da errore, dicendomi sempre numero non valido.
Che guaio.....
Grazie comunque....
25 messaggi dal 18 gennaio 2005
A chiunque possa servire, il To_number in oracle è il corrispettivo del cast di sql server.

to_number(CampoTabella,'999999') as valore

Ciao e grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.