T-SQL代码迁移至Databricks SQL遇IIF函数未定义求替代方案
Databricks SQL 替代 T-SQL IIF 函数的写法
T-SQL的IIF(condition, value_if_true, value_if_false)是语法糖,Databricks SQL(基于Spark SQL)不支持该函数,直接用标准SQL的CASE表达式就能完全替代,逻辑完全一致。
基础替换规则
原T-SQL写法:
IIF(condition, value_if_true, value_if_false)
等效Databricks SQL写法:
CASE WHEN condition THEN value_if_true ELSE value_if_false END
结合你的代码片段修改
你的原代码片段:
ISNULL(RH.Exchange, ISNULL(IIF(SIB.Rate = 0, 1, CASE .....
替换掉IIF后的Databricks SQL代码:
ISNULL(RH.Exchange, ISNULL(CASE WHEN SIB.Rate = 0 THEN 1 ELSE CASE ..... END END))
补充说明:Databricks SQL支持ISNULL函数,和T-SQL的ISNULL行为一致(返回第一个非空值);如果需要更灵活的多值非空判断,也可以用标准SQL的COALESCE函数替代ISNULL。
内容的提问来源于stack exchange,提问作者Patterson
相关产品推荐
相关产品推荐

