Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    [SQL] Consiglio su order by?

    Buon giorno, altro giro altra corsa( problema).Comunque, volevo sapere cortesemente, come si fà per ordinare il valore del campo IDProgr, contenente i seguenti valori:
    I record sono cosi all'interno della tabella:
    1° record:2C
    2° record:3C
    .....
    1000° record:1020C
    etc etc.
    Questa è la query che eseguo, ma, a seconda dell'ordinamento Desc o Asc, non mi estrapola giusto.
    codice:
    //se eseguo questa query, mi restituisce i record partendo da:9C,poi 99C,999C etc etc 
    SELECT IDProgr FROM TABChiamate order by IDProgr desc
    // se eseguo quest'altra parte da:1000C,1001C,1002C ect ect
    SELECT IDProgr FROM TABChiamate order by IDProgr asc
    //invece se eseguo tramite Query Analyzer di MS sql Server questa query:
    SELECT IDProgr FROM TABChiamate
    //non ho nessu problema, parte ovviamente dal primo IDProgr, quello che mi serve...
    //questo è quello che faccio
    <?
    $rs = $db->Execute("SELECT IDProgr FROM TABChiamate");
    while (!$rs->EOF){
    $IDProgr = $rs->Fields['IDProgr']->Value;
    $rs->MoveNext();
    }
    echo "<input type='text' name='txtProgr' style='width:50px' maxlength='6' size='5' value='".$IDProgr."'>";
    ?>
    Forse è un problema di questa sintassi: while (!$rs->EOF){?
    dato che non l'ho mai usata, e prutroppo la devo utilizzare per via degli ODBC, non so come fare diversamente...( Sempre se il problema, ripeto, dipende dal while..)

    Grazie come sempre...

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    stai ordinando dei campi di testo, ma vorresti un ordine numerico... ci sono vari modi ma puoi semplicemente caricare tutti i dati e ordinarli direttamente in PHP.

    Il problema è che l'ordinamento te lo effettua usando l'ordine alfabetico e non numerico (nota: se tutti i campi finisco con "C" allora sarebbe meglio cambiare il tipo in numerico e non memorizzare la "C", ma solo il numero antecedente)

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    prova così

    select * from tabella order by cast(nome_campo as signed)

  4. #4
    Grazie per avermi risposto.
    Purtroppo il DB non l'ho strutturato io, e mi devo, aimè, adeguare a questo.
    Se c'è un modo per estrapolare dal primo record esatto, questo "2C" ,sarebbe meglio!!

    Grazie

  5. #5
    Originariamente inviato da nicola75ss
    prova così
    select * from TABChiamate order by cast(IDProgr as signed)
    Mi restituisce questo errore, "Type signed is not a defined system type"

    Questo è quanto...Sbaglio qualcosa?uffff

    Grazie ancora...

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Non conosco l'errore.

    e così?

    select * from TABChiamate order by IDProgr+0

  7. #7
    purtroppo, neanche cosi perchè tenta di fare una conversione del tipo di dato e l'errore è:

    "Syntax error converting the nvarchar value '2C' to a column of data type int."

    mma...

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Per curiosità che versione stai usando di mysql?

  9. #9
    Originariamente inviato da nicola75ss
    Per curiosità che versione stai usando di mysql?
    mi sa che si tratti MsSql

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da piero.mac
    mi sa che si tratti MsSql

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.