Tableau计算字段异常求助:IF ELSE逻辑返回错误结果
IF ELSE区间计算异常修正
你的计算结果异常是因为区间判断里错误使用了OR运算符,逻辑完全不符合预期。
原代码里的每个ELSEIF条件用OR的话,只要满足两个条件中的任意一个就会触发。比如Days为300时,第二个判断[Days]>'0' or [Days]<='273.5'中[Days]>'0'本身成立,会直接返回'182',根本不会进入后续的区间判断,这就是异常根源。
修正后的代码(将所有区间判断的OR替换为AND):
IF ([Days]<='0' or [Days]='none') THEN '0' ELSEIF [Days]>'0' AND [Days]<='273.5' THEN '182' ELSEIF [Days]>'273.5' AND [Days]<='548' THEN '365' ELSEIF [Days]>'548' AND [Days]<='913' THEN '730' ELSEIF [Days]>'913' AND [Days]<='1460' THEN '1095' ELSE '1825' END
额外提示:如果[Days]是数值类型字段,建议先统一处理成数值再判断,避免字符串与数值比较带来的隐性问题。比如可以先把'none'转换为0或其他合适数值,再做纯数值区间判断。
内容的提问来源于stack exchange,提问作者SQL Enthusiast
相关产品推荐
相关产品推荐

