【问题标题】:SQL Server to Snowflake Query ConversionSQL Server 到雪花查询的转换
【发布时间】:2022-07-07 03:08:58
【问题描述】:

我正在尝试将此查询转换为 Snowflake,但我想出的结果一直给我一个错误,它无法将 '04/17/22' 转换为数值。

SQL:

  SELECT  
  user_id AS u_id,  
  Substring(Max( CONVERT(VARCHAR(10), system_modstamp, 121) +   
   CASE -- Categorizing all of the team roles  
   WHEN team_member_role LIKE 'AM%'   
    OR team_member_role LIKE '%AM %'   
    OR team_member_role LIKE 'ASR%'   
   THEN 'AM Sales'   
   WHEN team_member_role LIKE '%fsr%'   
   THEN 'FSR'   
   WHEN team_member_role LIKE '%RSD%'   
    AND team_member_role NOT LIKE '%parts%'   
   THEN 'AC Sales'   
   WHEN team_member_role LIKE 'RSA%'   
   THEN 'AC Sales'   
   ELSE team_member_role   
  END  
  ), 11, 99) AS team_groups, Max(system_modstamp) AS SYSTEM_MODSTAMP   
 FROM S_SFDC_ACCOUNT_TEAM   
 GROUP BY user_id

雪花:

SELECT  
  user_id AS u_id,  
  SUBSTR(Max( TO_VARCHAR( system_modstamp,'YYYY-MM-DD') + 
CASE WHEN team_member_role LIKE 'AM%' OR team_member_role LIKE '%AM %' OR team_member_role LIKE 'ASR%' THEN 'AM Sales' WHEN team_member_role LIKE '%fsr%' THEN 'FSR' WHEN team_member_role LIKE '%RSD%' AND team_member_role NOT LIKE '%parts%' THEN 'AC Sales' WHEN team_member_role LIKE 'RSA%' THEN 'AC Sales' ELSE team_member_role END 
), 11, 99) AS team_groups, Max(system_modstamp) AS SYSTEM_MODSTAMP 
FROM S_SFDC_ACCOUNT_TEAM   
GROUP BY user_id

【问题讨论】:

  • system_modstap 的数据类型是什么?尝试将TO_VARCHAR( system_modstamp,'YYYY-MM-DD') 更改为TO_VARCHAR( system_modstamp::date,'YYYY-MM-DD')
  • 它应该是一个日期字段。我尝试添加 ::date 但我仍然遇到同样的错误。 “无法识别数值‘2022-04-24’”
  • 另外,使用 CONCAT 函数进行连接,而不是 +
  • 在 Snowflake 中,+ 尝试添加数值。这不是连接字符串的方法。
  • 谢谢 Pankaj 和 Mike,不使用 concat 是我的问题

标签: sql-server snowflake-cloud-data-platform


【解决方案1】:

对于闭包,用 cmets 表示:

  • 问题在于使用+ 进行字符串连接,因为在Snowflake 中您需要改用||

错误“无法将 '...' 转换为数值”表明它尝试将该日期转换(转换为字符串),然后 Snowflake 尝试将其转换为用于+ 操作的数字.

感谢 Pankaj 和 Mike!

【讨论】:

    猜你喜欢
    • 2022-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    相关资源
    最近更新 更多