当我尝试在我的redshift SQL查询中将列存储的“逗号分隔值”传递给IN条件时,我遇到了一个问题。
示例:
PID |参数1 --- --------------- 1 | P001,P002
ProductID |描述 ---------- --------------- P001 | P001_desc P002 | P002_desc P003 | P003_desc
- 从源表中查询选择
从[Source Table]中选择*,其中ProductID in(从Table_Ref_parameters中选择Parameter1)
- 这并没有给我任何结果,即使我试图用不同的引用给它,即使在列数据中也是如此('P001','P002')。当我通过专栏时,它仍然不起作用。
任何人都有任何提示请帮我解决这个问题。
谢谢你们。
答案 0 :(得分:0)
这是因为in列表需要是一组离散的字符串。 in子句中的select子句将为table_ref_parameters中的每一行生成一个字符串。如果您要更新Table_Ref_Parameters,以便每行包含一个没有引号的参数,这将正常工作。