sqlite—如何使用sql选择不是数字的所有值?

cbeh67ev  于 2021-08-13  发布在  Java
关注(0)|答案(2)|浏览(418)

由于前面的一个错误,我在应该有整数和floar的地方得到了字母和符号。此时,我不知道问题的严重程度,也不知道如何在我们前进的过程中纠正代码。
当我跑的时候 SELECT distinct col1 from table ; 我得到整数,浮点数,符号和字母。其中有几百万。
如何更新sql以排除所有数字?换句话说,只显示字母和符号。

egdjgwm8

egdjgwm81#

你可以用 GLOB 操作员:

select col1 
from tablename 
where col1 GLOB '*[^0-9]*'

这将返回 col1 包含任何不同于数字的字符的。
你可以把它改成包括 '.' 在字符列表中:

where col1 GLOB '*[^0-9.]*'

请看演示。
如果您想要的是不包含任何数字的值,请使用以下命令:

select col1 
from tablename 
where col1 not GLOB '*[0-9]*'

请看演示。

68bkxrlz

68bkxrlz2#

嗯。sqlite没有内置正则表达式,这让人有点头疼。如果列实际上包含数字和字符串(因为这在sqlite中是可能的),那么可以使用

where typeof(col) = 'text'

如果类型都是文本(所以 '1.23' 而不是 1.23 ),则这可能会满足您的要求:

where cast( (col + 0) as text) = col

相关问题