Sto lavorando su un'app Android in cui l'utente ha diverse opzioni per l'ordinamento dei dati visualizzati che provengono dal database. Attualmente la mia stringa orderBy che mi passa per interrogare androidi() il metodo è simile al seguente:Determina il tipo di dati di una colonna in SQLite
"LOWER("+columnName+") ASC"
Il problema di questo è che se il tipo di dati nella colonna specificata da columnName è intero, chiamando LOWER() su di esso sarà perché deve essere ordinato alfabeticamente, cioè basato solo sulla cifra più a sinistra, che ovviamente non ha alcun senso per i dati numerici. Quindi voglio solo applicare LOWER() se il tipo di dati della colonna non è intero. Quello che ho in mente è una dichiarazione come questa:
"CASE WHEN [data type of columnName is integer] THEN "+columnName+" ASC ELSE LOWER("+columName+") ASC END"
La parte tra parentesi è ciò che non so come fare. SQLite fornisce una funzione per determinare il tipo di dati di una colonna?
Nel mio caso non ha molta importanza. Il tipo dei valori deve corrispondere al tipo della colonna. Quindi typeof (columnName) dovrebbe funzionare perfettamente. Grazie mille. –