gpt4 book ai didi

sql - 将字符串数组转换为 Snowflake 中的数字数组

转载 作者:行者123 更新时间:2023-12-05 01:28:27 26 4
gpt4 key购买 nike

如何将字符串值数组转换为数字数组?

背景:

使用 Snowflake,我有一个字符串输入,如“123、45、89”,我想将其转换为数字数组(123、45、89),以便我最终可以与 int 列进行比较,如

WHERE id IN ( array of number here)

我想我可以使用 SPLIT('123, 45, 89', ',') 来获取一个字符串数组,但是得到这样的错误:

SQL compilation error: Can not convert parameter 'SPLIT(?, ',')' of type [ARRAY] into expected type [NUMBER(38,0)]

对于上下文,我使用元数据库,将文本过滤器作为输入来添加这些 ID。

最佳答案

您可以尝试利用 ARRAY_CONTAINS 函数,而不是 WHERE IN 选项。棘手的部分是 SPLIT 函数创建一个字符串数组,而不是数字,因此您必须首先将 id 字段转换为字符串。您还需要注意初始字符串中的空格,因为这也会产生问题。然而,这样的事情是有效的:

  CREATE OR REPLACE TEMP TABLE testing (id int);
INSERT INTO testing (id) VALUES (45);

然后在使用您的字符串/数组查询此表时:

  SELECT t.id
FROM testing t
WHERE array_contains(t.id::varchar::variant,SPLIT('123,45,89',','));

关于sql - 将字符串数组转换为 Snowflake 中的数字数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68597737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com