Snowflake 无法识别 CAST 或 TO_VARCHAR 连接键上的函数

Snowflake not recognizing a CAST or to TO_VARCHAR function over a join key

我正在尝试对三个表执行联接。 这是初始代码,有效但 returns 产品描述全部为 NULL。我认为这是因为在我加入的前 2 个表中,连接键是 varchar 类型,而在另一个表中它是 INT。 int 键是 analytics.dbt_lcasucci.product_category.product ID(最后加入)。

SELECT raw.stitch_heroku.spree_line_items.variant_id
       , raw.stitch_heroku.spree_variants.SKU
       , raw.stitch_heroku.spree_line_items.price
       , raw.stitch_heroku.spree_line_items.cost_price
       , pc.product_description
FROM raw.stitch_heroku.spree_line_items 
LEFT OUTER JOIN raw.stitch_heroku.spree_variants 
ON raw.stitch_heroku.spree_line_items.variant_id = raw.stitch_heroku.spree_variants.id
LEFT JOIN analytics.dbt_lcasucci.product_category as pc ON pc.product_ID = raw.stitch_heroku.spree_variants.id
GROUP BY raw.stitch_heroku.spree_line_items.variant_id
      , raw.stitch_heroku.spree_variants.SKU
      , raw.stitch_heroku.spree_line_items.price
      , raw.stitch_heroku.spree_line_items.cost_price
      , pc.product_description

接下来,我尝试使用一些雪花函数将 analytics.dbt_lcasucci.product_category.product ID 转换为 varchar。

这是我试过的:

LEFT JOIN (
   SELECT analytics.dbt_lcasucci.product_category.product_description
          , T0_VARCHAR(analytics.dbt_lcasucci.product_category.product_ID) 
   FROM analytics.dbt_lcasucci.product_category) as pc
   ON pc.product_ID= sv.id

LEFT JOIN (
   SELECT analytics.dbt_lcasucci.product_category.product_description
   , TRY_CAST(analytics.dbt_lcasucci.product_category.product_ID as VARCHAR(10) 
   FROM analytics.dbt_lcasucci.product_category) as pc
   ON pc.product_ID= sv.id

我收到的错误是:标识符无效 T0_VARCHAR 或函数 TRY_CAST 不能与 NUMBER(38,0) 和 VARCHAR(10)

类型的参数一起使用

我不确定是否有办法通过这样做来修复它,或者我是否应该重新上传该文件,更改其来源的类型。

提前致谢!!!

当我查看您的代码时,我必须注意到这一点:

T0_VARCHAR(analytics.dbt_lcasucci.product_category.product_ID) FROM

在这部分代码中,您似乎使用了数字零 0 而不是字母 O 的 TO_VARCHAR ?请检查。

对于你的第二次尝试,我在这里看到:https://docs.snowflake.net/manuals/sql-reference/functions/try_cast.html 你必须发送一个字符串作为你的 TRY_CAST 函数的参数。