gpt4 book ai didi

sql - 将逗号分隔的字符串转换为列表

转载 作者:行者123 更新时间:2023-12-04 15:10:05 25 4
gpt4 key购买 nike

我想传递一个整数列表(逗号分隔),这是我表中的一个字段

ie. 1234, 2345, 3456, 4567



到我 IN 中的 WHERE 子句。但该列表是一个字符串 ( VARCHAR ),我将其与 int 字段进行比较。有没有办法将列表转换为整数列表?
Enterprise_IDINT
路径是表中的一个字段,它是一个逗号分隔的字符串

IE。 1234、2345、3456、4567
SELECT *
FROM tbl_Enterprise
WHERE Enterprise_ID IN ( Path )

我的数据库是 Vertica。

最佳答案

您可以在 vertica 中使用 SPLIT_PART 函数将逗号分隔的列表拆分为行并将它们插入到临时表中。使用类似这样的查询来实现您的目标:

SELECT * FROM tbl_Enterprice WHERE Enterprice_ID IN ( Select Enterprice_ID from temp_table )

分体功能:
https://my.vertica.com/docs/7.1.x/HTML/Content/Authoring/SQLReferenceManual/Functions/String/SPLIT_PART.htm

以下是使用 split_part 将字符串拆分为行的示例:
dbadmin=> SELECT SPLIT_PART('JIM|TOM|PATRICK|PENG|MARK|BRIAN', '|', row_num) "User Names"
dbadmin-> FROM (SELECT ROW_NUMBER() OVER () AS row_num
dbadmin(> FROM tables) row_nums
dbadmin-> WHERE SPLIT_PART('JIM|TOM|PATRICK|PENG|MARK|BRIAN', '|', row_num) <> '';
User Names
------------
JIM
TOM
PATRICK
PENG
MARK
BRIAN
(6 rows)

关于sql - 将逗号分隔的字符串转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31532665/

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