首页 > 解决方案 > AWS redshift join 与函数返回错误

问题描述

我试图通过使用左函数加入两个不同的表 - 供参考(https://docs.aws.amazon.com/redshift/latest/dg/r_LEFT.html)它抛出一个错误,说“无效操作”我希望错误消息更有帮助。如果我删除左边的函数,那么它可以工作,但我需要让它与一个函数一起工作,因为我没有看到对文档的任何限制。我不确定为什么它不能与一个函数一起工作,因为任何关于如何的建议解决这个问题?

select id from state
LEFT JOIN city c ON lower(left(c.segmentation_name::text, '-4'::integer)) = lower(state.name::text)

标签: sqlamazon-web-servicesamazon-redshift

解决方案


如果您想要除最后四个字符之外的所有字符,请使用:

from state s left join
     city c 
     on substring(lower(c.segmentation_name::text), 1, len(c.segmentation_name::text) - 4) = lower(state.name::text)

转换text看起来真的很尴尬。也许这就足够了:

from state s left join
     city c 
     on substring(lower(c.segmentation_name), 1, len(c.segmentation_name) - 4) = lower(state.name)

推荐阅读