【发布时间】:2018-09-06 16:19:10
【问题描述】:
我想传递一个 int 列表(逗号分隔),它是我表中的一个字段
即。 1234、2345、3456、4567
我在WHERE 中的IN 子句。但该列表是一个字符串 (VARCHAR),我正在与一个 int 字段进行比较。有没有办法将列表转换为整数列表?
Enterprise_ID 是 INT
路径是表中的一个字段,它是一个逗号分隔的字符串
即。 1234、2345、3456、4567
SELECT *
FROM tbl_Enterprise
WHERE Enterprise_ID IN ( Path )
我的数据库是 Vertica。
【问题讨论】:
-
您可以控制数据库结构吗?列中以逗号分隔的整数列表强烈暗示您的数据库结构错误。
-
@MattGibson 我认为实际的问题是他作为参数传递给查询(逗号分隔数字的 varchar 列表),而不是 DB 结构。
-
@RaduGheorghiu 在列中存储多个值是结构问题。
-
@Kermit OP 没有提及将多个值存储在单个列中的任何内容(我同意,这是结构的问题)-
"But the list is a string (VARCHAR), and I'm comparing to an int field" -
@RaduGheorghiu 我明白你的解释。我认为你是对的!