Azure Synapse Analytics Dedicated SQL池IIF语句使用报错问题咨询
IIF()无法在Azure Synapse Analytics 专用SQL池运行的原因
- Azure Synapse Analytics 专用SQL池仅实现了标准T-SQL的功能子集,IIF()属于SQL Server 2012及以上版本推出的非ANSI标准语法糖,不在专用SQL池的支持语法列表中,因此SQL解析器无法识别该函数,会直接抛出语法错误。
- 专用SQL池为MPP分布式架构,为了保障分布式查询的稳定性和执行效率,未对SQL Server生态的各类简化语法糖做全量适配,IIF()就属于未适配的功能范畴。
- 补充说明:Azure Synapse 无服务器SQL池(Serverless SQL Pool)支持IIF()语法,仅专用SQL池暂不支持该函数。
替代实现方案
官方推荐使用标准ANSI的CASE语句替换IIF(),替换后的写法和原IIF()逻辑完全等价,无额外性能开销,示例如下:
SELECT CASE WHEN 1>2 THEN 'YES' ELSE 'NO' END;
内容的提问来源于stack exchange,提问作者Arulmouzhi
相关产品推荐
相关产品推荐

