Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    1,413

    query sql con condizione stringa trattata come numero

    Ciao a tutti...

    dovrei fare una query che selezioni le righe con il campo COD minore di 14.

    Il problema e che il campo COD e una stringa quindi avrei dei problemi nel fare WHERE COD<14.

    Esiste un modo per indicare da SQL che quella condizione deve essere trattata come un valore numerico?

    penso a qualcosa tipo CAST in T-SQL

    grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955

    Re: query sql con condizione stringa trattata come numero

    Originariamente inviato da alexinside83
    Ciao a tutti...

    dovrei fare una query che selezioni le righe con il campo COD minore di 14.

    Il problema e che il campo COD e una stringa quindi avrei dei problemi nel fare WHERE COD<14.

    Esiste un modo per indicare da SQL che quella condizione deve essere trattata come un valore numerico?

    penso a qualcosa tipo CAST in T-SQL

    grazie a tutti
    Ma a questo punto perché non ti definisci meglio il campo di ricerca? Mi spiego.
    Se sai che in cod andranno solo numeri allora formattali l'1 lo fai diventare 01 o 001 e così via in modo da avere già così un confronto, se pur tra stringhe, che emula un confronto tra numeri. In SQL standard non so se esiste un comando come CAST o CONVERT di T-SQL

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    1,413
    quindi se io pongo lo 0 davanti ai numeri inferiori alle centinaia potrei ottenere un confronto "numerico" tra stringhe.

    Ma perchè ponendo lo 0 davanti aggiro il problema?

  4. #4
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Originariamente inviato da alexinside83
    quindi se io pongo lo 0 davanti ai numeri inferiori alle centinaia potrei ottenere un confronto "numerico" tra stringhe.

    Ma perchè ponendo lo 0 davanti aggiro il problema?
    Perché per le stringhe 0 è minore di 1
    (esempi di stringhe)
    001 < 020 è vero
    1 < 20 è falso

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    1,413
    mmm...ma fa un controllo convertendo il carattere in binario?

    mi sfugge perchè 1 non è minore di 20 se non è scritto come 001

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    l'esempio corretto è :
    2<10 falso
    02<10 vero

  7. #7
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Originariamente inviato da elfa
    l'esempio corretto è :
    2<10 falso
    02<10 vero
    Ops che figura si ha ragione elfa ho sbagliato l'esempio ma il concetto era quello. Bye

  8. #8
    si ma che schifo...se sono numeri perchè salvarli come lettere?

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    1,413
    perchè purtroppo sono codici che hanno una parte numerica (sensibile all'ordinamento) e una alfanumerica:

    es. 023B

    deve comparire dopo

    011ZZ


  10. #10
    ci fai un esempio dei valori che sono nel db? denghiu'

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.