Redshift LIKE列值为%

时间:2018-02-13 23:14:18

标签: sql amazon-redshift

我有一个以逗号分隔的值字符串的列。我想加入另一个只有一个值的表。在redshift上,如何在比较中注入“%”的LIKE运算符?

例如:

TableA:values_col ='abc,def'

TableB:value_col ='def'

SELECT *
FROM TableA a
JOIN TableB b ON b.value_col LIKE '%' || a.values_col || '%'

上面的concat似乎不起作用。任何建议,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

你会得到糟糕的表现。您应该修复您的数据结构。但如果必须,那么这应该有效:

SELECT *
FROM TableA a JOIN
     TableB b
     ON ',' || a.values_col || ',' LIKE '%,' || b.value_col || ',%';

如果您的值可以包含彼此,则逗号很重要。更重要的是,like需要正确顺序的操作数。