我在名为ProcedureCode 的表中有一个名为ProcedureCode VARCHAR(16777216) 的列。 它的值包括“12345,46H”、“A4715,12W”、“98765”、“99200”等。
从该表中,我只需要提取前 5 个字符是数字的行, 前 5 个字符在 99200 - 99499 范围内。
在T-SQL中,我会使用IsNumeric()来确定字符串的前5个字符是否是数字[但我不能在Snowflake中使用IsNumeric()]。然后我会将前 5 个字符转换为数字。然后我会测试第 1 个 5 是否在我的范围内。
我不知道如何在 Snowflake 中执行此操作。
如果我能得到任何指示/帮助,我将不胜感激。
谢谢!
您可以在左侧 5 个字符上使用 try_to_number。如果不是数字,则返回 null。然后您可以将其与您的范围进行比较:
create or replace table T1(S string);
insert into T1(S) values('99200ABC'), ('ABC12345');
select * from T1
where try_to_number(left(S, 5)) between 99200 and 99499;