Sql 类红移列值,带%
我有一个列,它是一个逗号分隔的值字符串。我想加入另一个只有一个值的表。在红移时,如何在比较中插入“%”来执行LIKE运算符 例: 表A:values_col='abc,def' 表B:value_col='def'Sql 类红移列值,带%,sql,amazon-redshift,Sql,Amazon Redshift,我有一个列,它是一个逗号分隔的值字符串。我想加入另一个只有一个值的表。在红移时,如何在比较中插入“%”来执行LIKE运算符 例: 表A:values_col='abc,def' 表B:value_col='def' SELECT * FROM TableA a JOIN TableB b ON b.value_col LIKE '%' || a.values_col || '%' 上面的concat似乎不起作用。如有任何建议,将不胜感激。谢谢。你会有糟糕的表现。您应该修复数据结构。但如果必须这
SELECT *
FROM TableA a
JOIN TableB b ON b.value_col LIKE '%' || a.values_col || '%'
上面的concat似乎不起作用。如有任何建议,将不胜感激。谢谢。你会有糟糕的表现。您应该修复数据结构。但如果必须这样做,那么这应该是可行的:
SELECT *
FROM TableA a JOIN
TableB b
ON ',' || a.values_col || ',' LIKE '%,' || b.value_col || ',%';
如果值可以相互包含,则逗号很重要。更重要的是,
类
需要正确的操作数顺序。谢谢Gordon。您对数据结构有何建议?我应该将列表展平为n列,还是让它们成为不同的行?谢谢。@cvax。不应在分隔列表中存储多个值。每个值应该有一行。