首页 > 解决方案 > 选择以数字开头的行进行聚合

问题描述

create table model(model_no varchar);`
insert into model values('1&');`
insert into model values('2/12/20');`
insert into model values('a2');`
insert into model values(30);--i want this row`
insert into model values(3.1);--i want this row`
insert into model values(%20);`

行可以以任何特殊字符开头或可能包含任何特殊字符,我最终喜欢对模型列执行聚合。我正在使用雪花数据库

标签: sqlsnowflake-cloud-data-platform

解决方案


要查找“数字”值,可以使用TRY_CAST :

CAST 的特殊版本,:: 可用于数据类型转换的子集。它执行相同的操作(即将一种数据类型的值转换为另一种数据类型),但在无法执行转换时返回 NULL 值而不是引发错误。

SELECT TRY_CAST(model_no AS NUMERIC(20,5)) AS model_no_num
FROM model
WHERE model_no_num IS NOT NULL;

推荐阅读