第一种方法:
SELECT column_name
FROM table_name
WHERE REGEXP_LIKE(column_name, '^[0-9]+$');
上述SQL语句将返回表table_name
中column_name
字段值为纯数字的记录。(不包含小数点、正负号等其他字符)
第二种方法:
SELECT column_name
FROM table_name
WHERE TO_NUMBER(column_name) IS NOT NULL;
注意:在使用TO_NUMBER()
函数时,如果字段的值不能转换为有效的数字,将会抛出异常。因此,如果你不希望查询被异常中断而是需要得到一个标识字段是否为数字的结果,可以使用TO_NUMBER()
函数结合EXCEPTION
关键字和NULL
替换。例如:
SELECT column_name,
CASE WHEN TO_NUMBER(column_name) IS NULL THEN '非数字' ELSE '数字' END AS is_numeric
FROM table_name;