Cómo verificar si un valor es un número en SQLite

Tengo una columna que contiene numbers y otros valores de cadena (como "?", "???", etc.)

¿Es posible agregar una condición "es número" a la cláusula where en SQLite? Algo como:

select * from mytable where isnumber(mycolumn) 

De la documentation ,

La function typeof (X) devuelve una cadena que indica el tipo de datos de la expresión X: "nulo", "integer", "real", "text" o "blob".

Puedes usar where typeof(mycolumn) = "integer"

select * from mytable donde abs (mycolumn) <> 0.0 o mycolumn = '0'

http://sqlfiddle.com/#!5/f1081/2

Basado en esta respuesta

Podrías probar algo como esto también:

 select * from mytable where printf("%d", field1) = field1; 

En caso de que su columna sea de text y contenga numbers y cadenas, esto podría ser útil para extraer datos integers.

Ejemplo:

 CREATE TABLE mytable (field1 text); insert into mytable values (1); insert into mytable values ('a'); select * from mytable where printf("%d", field1) = field1; field1 ---------- 1 
 SELECT * FROM mytable WHERE columnNumeric GLOB '*[0-9]*'