CASE语句中对LIKE运算符的Redshift限制

时间:2019-02-15 15:28:07

标签: amazon-redshift

我遇到了一个问题:如果case语句中有超过15个LIKE运算符,则会出现错误java.lang.StackOverflowError

以下是我对具有6000万行的表执行的示例:

SELECT 
  CASE WHEN field LIKE '%value%' THEN 'result'
       WHEN field LIKE '%value2%' THEN 'result2'
       .... 14 more of those
  END

我没有在任何地方看到此限制的记录。有什么想法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

这听起来像是内存不足错误。

我认为您有一些选择:

答案 1 :(得分:1)

您可以Create a Scalar Python User-Defined Function代替LIKE比较。

然后,只需使用:

SELECT f_myfunc(field)

答案 2 :(得分:1)

原来是驱动程序问题。我最初使用的是1.2.16.1027,后来又升级到了1.2.20.1043,并且不再收到错误。