繁体   English   中英

如何返回特定列中只有 integer 个值的所有记录?

[英]How to return all records having only integer values in a specific column?

我想返回某一列只有 integer 个值的所有记录。

例如,

parent_id        category_id
    1                43656
    2               aabc6gn
    3                 1123
    4                aaxxyy

结果应该是——

parent_id        category_id
    1                43656
    3                 1123

以下是 BigQuery 标准 SQL

#standardSQL
select *
from yourTable
where not regexp_contains(category_id, r'[^\d]')     

如果应用于您问题中的示例数据 - output 是

在此处输入图像描述

在这里使用REGEXP_MATCH

SELECT parent_id, category_id
FROM yourTable
WHERE REGEXP_MATCH(category_id, r'^[0-9]+$');

您可以通过尝试转换为 integer 来做到这一点:

where safe.convert(category_id as int64) is not null

我将您的问题解释为该值可以转换为 integer,而不是每个数字都是 integer。

如果是后者,我会简单地使用:

where regexp_contains(category_id, '^[0-9]+$')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM