RISOLTO [SQL] Variazione da varchar a int, con tabella popolata

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

jNash

Utente Attivo
Messaggi
1,394
Reazioni
107
Punteggio
90
Buongiorno,
ho una tabella con un migliaio di records.
Una colonna è di tipo varchar e vorrei farla diventare int, perché contenendo solo degli interi, non riesco a ordinarli in ordine decrescente (es. mi ritrovo 8-6-2-10).
Poichè solo una parte dei records è inizializzato su quella colonna, cioè ha un valore, la quasi totalità non ha alcun numero, tutti i tentativi che ho fatto attraverso ALTER TABLE... mi danno errore al primo records incontrato con valore non assegnato.
Come posso risolvere? Grazie.
 
Ultima modifica:
Buongiorno,
ho una tabella con un migliaio di records.
Una colonna è di tipo varchar e vorrei farla diventare int, perché contenendo solo degli interi, non riesco a ordinarli in ordine decrescente (es. mi ritrovo 8-6-2-10).
Poichè solo una parte dei records è inizializzato su quella colonna, cioè ha un valore, la quasi totalità non ha alcun numero, tutti i tentativi che ho fatto attraverso ALTER TABLE... mi danno errore al primo records incontrato con valore non assegnato.
Come posso risolvere? Grazie.
Prova a modificare la struttura della tabela mettendo che quel campo può essere null
Inoltre, l'alter table funziona solo se
- tutti i dati possono essere convertiti in int (cioè un valore di "stringa" fallirà)
- non ci sono indici che includono quel campo
 
Potresti usare un CAST che include un COALESCE.
coalesce viene usato in casi come questo, gli passi due valori, primo il campo che vuoi convertire e il secondo zero, poi fai il Cast to integer.
 
Prova a modificare la struttura della tabela mettendo che quel campo può essere null
Inoltre, l'alter table funziona solo se
- tutti i dati possono essere convertiti in int (cioè un valore di "stringa" fallirà)
- non ci sono indici che includono quel campo
Dopo aver impostato NULL, quando provo a cambiare da VARCHAR a INT, mi dà errore al primo valore "", cioè non inizializzato.
Ho solo una decina di records con valore da 1 a 10. Non ci sono indici su quel campo.

Edit: ho risolto così. Ho modificato i records "" in 0. Poi ho potuto fare la variazione da varchar a int.
Grazie a tutti.
 
Ultima modifica:
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top