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]*'