【问题标题】:Azure Synapse Analytics Dedicated SQL pool - IIF statement is not workingAzure Synapse Analytics 专用 SQL 池 - IIF 语句不起作用
【发布时间】:2021-10-19 23:23:41
【问题描述】:

尝试在 SELECT 语句中使用 IIF() 并收到错误“Incorrect syntax near '>'。” Azure Synapse Analytics 专用 SQL 池

尝试如下:

SELECT IIF(1>2, 'YES', 'NO');

这个错误让我相信 IIF 语句在 Azure Synapse Analytics 专用 SQL 池中根本不起作用。

知道,CASE 是替代方案,但想知道在 Synapse 专用 SQL 池中 IIF 无法正常工作的背后是否有任何具体原因?

任何有关这方面的诀窍或知识分享都将不胜感激!

【问题讨论】:

  • 明确指出 Synapse Analytics 不支持此运算符:“Azure Synapse Analytics 专用 SQL 池不支持 IIF。” => docs.microsoft.com/en-us/sql/t-sql/functions/….
  • CASE 是标准 SQL。 IIF() 是定制的 SQL。我建议你使用标准 SQL 的方法。

标签: sql azure azure-synapse


【解决方案1】:

正如 Jaime Drq 在评论中提到的,目前,Azure Synapse Analytics 专用 SQL 池不支持 IIF这是在反馈/单独讨论级别

所以在微软技术社区的讨论中提出了同样的要求。希望 Azure Synapse Analytics 团队在不久的将来实施这个简单的插件。

如果您还希望它出现在 Azure Synapse Analytics 专用 SQL 池中,请让社区知道这件事并在 Microsoft 的技术社区中点赞 - https://techcommunity.microsoft.com/t5/azure-synapse-analytics/azure-synapse-analytics-dedicated-sql-pool-iif-statement-support/m-p/2659481#M16

【讨论】:

    【解决方案2】:

    根据the documentation,目前专用 SQL 池不支持 IIF。使用 CASE 语句的等效语句是:

    SELECT CASE WHEN 1 > 2 THEN 'YES' ELSE 'NO' END;
    

    IIF 目前由无服务器 SQL 池提供:

    【讨论】:

      猜你喜欢
      • 2021-06-01
      • 2022-10-04
      • 2021-12-25
      • 2021-10-11
      • 2021-06-06
      • 2021-05-28
      • 2021-03-14
      • 2021-12-01
      • 2021-06-06
      相关资源
      最近更新 更多