由于前面的一个错误,我在应该有整数和floar的地方得到了字母和符号。此时,我不知道问题的严重程度,也不知道如何在我们前进的过程中纠正代码。当我跑的时候 SELECT distinct col1 from table ; 我得到整数,浮点数,符号和字母。其中有几百万。如何更新sql以排除所有数字?换句话说,只显示字母和符号。
SELECT distinct col1 from table
egdjgwm81#
你可以用 GLOB 操作员:
GLOB
select col1 from tablename where col1 GLOB '*[^0-9]*'
这将返回 col1 包含任何不同于数字的字符的。你可以把它改成包括 '.' 在字符列表中:
col1
'.'
where col1 GLOB '*[^0-9.]*'
请看演示。如果您想要的是不包含任何数字的值,请使用以下命令:
select col1 from tablename where col1 not GLOB '*[0-9]*'
请看演示。
68bkxrlz2#
嗯。sqlite没有内置正则表达式,这让人有点头疼。如果列实际上包含数字和字符串(因为这在sqlite中是可能的),那么可以使用
where typeof(col) = 'text'
如果类型都是文本(所以 '1.23' 而不是 1.23 ),则这可能会满足您的要求:
'1.23'
1.23
where cast( (col + 0) as text) = col
2条答案
按热度按时间egdjgwm81#
你可以用
GLOB
操作员:这将返回
col1
包含任何不同于数字的字符的。你可以把它改成包括
'.'
在字符列表中:请看演示。
如果您想要的是不包含任何数字的值,请使用以下命令:
请看演示。
68bkxrlz2#
嗯。sqlite没有内置正则表达式,这让人有点头疼。如果列实际上包含数字和字符串(因为这在sqlite中是可能的),那么可以使用
如果类型都是文本(所以
'1.23'
而不是1.23
),则这可能会满足您的要求: