Snowflake-如何过滤掉数字全部相同的数字?

问题描述 投票:0回答:2

我正在尝试过滤掉所有数字都相同的数字 - 例如“000000000”,“111111111111”等。 我希望可以在雪花中使用 REGEXP_LIKE 来完成。 但它不起作用。

这些是我尝试测试的内容: 选择 案件 当 REGEXP_LIKE(列, '^[0-9] +$') 那么 '0' 其他'1' 结尾为 D;

尝试添加更多反斜杠来解决转义序列问题。仍然没有给我想要的输出。

sql regex snowflake-cloud-data-platform case regexp-like
2个回答
0
投票

您可以使用以下解决方案,这会更可靠且可定制

with data as (
select '1111111' num
union 
select '0000000' num
union
select '1234' num
)
select *
,case when array_size(ARRAY_DISTINCT(regexp_extract_all(num,'.'))) = 1 THEN '0' ELSE '1' END AS D
from data
 ;

-1
投票

关闭。所需的正则表达式的形式为

^([0-9])\1+$
。圆括号是获取第一个数字的捕获组。然后,
\1+
表示捕获组 1 中的一个或多个内容。

不熟悉 SQL,因此反斜杠可能需要加倍,因此:

^([0-9])\\1+$

© www.soinside.com 2019 - 2024. All rights reserved.