Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Convertire stringa in intero per odinamento

    Ho un database molto popolato e dovrei ordinare delle query per campi testuali, ma se ordino per campi testuali ci mette 10 secondi a restituirmi un recordset, mentre se ordino per numeri interi il tempo è inferiore al secondo.
    Così ho pensato di inserire un campo di tipo bigint, per riempirlo con un numero intero che mi permettesse di rispettare l'ordinamento che serve a me.
    L'unico problema è che devo trovare l'algoritmo per convertire una stringa in un numero intero tale che, confrontando due stringhe diverse, attribuisca un numero intero inferiore alla stringa che occupa una posizione inferiore se le stringhe fossero ordinate.

    Ho provato interpretando la stringa come un numero in base 255 (codice ascii) e convertirlo in base 10, ma il risultato non è quello da me desiderato.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,463
    Ma di quale linguaggio stai parlando? Quale db?

  3. #3
    il db è sql server, il linguaggio è tsql.
    Ma non penso siano influenti.
    Comunque la soluzione l'ho trovata, converto le stringhe in decimale.
    Ma ora il problema è trovare un tipo di dato che mi possa contenere un intero espresso a 1700bit.
    Nessuna altra soluzione?

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    ma mettere un indice sui campi che devi mettere nella order pare brutto?

  5. #5
    Ci avevo già provato, ma la velocità non cambia.

  6. #6
    Alla fine ho creato un campo varbinary, ho inserito un trigger sulla tabella interessata che riempie il campo varbinary con il merge dei 3 campi che uso per l'ordinamento, poi ordino per il campo varbinary.
    Adesso è veloce...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.