GaussDB(DWS)条件表达式函数返回错误结果集排查
摘要:条件表达式函数中出现结果集不一致问题,我们首先要考虑是否入参数据类型不一致导致出参不一致。 本文分享自华为云社区《GaussDB(DWS)条件表达式函数返回错误结果集排查》,作者:yd_211369925 。 (一)案例背景 客户使用greatest获取并返回参数列表中值最大的表达式的值,子查询中查询结果与将子查询的结果粘出来单独执行结果集不一致。 select greatest(1,2,100,-1,0,nvl(null,0)) --结果为2,select nvl(null,0)的结果为0 select greatest(1,2,100,-1,0,0) --结果为100 (二)问题排查 首先我们要了解greatest和nvl两个函数的用法 客户使用的版本为dws820环境为mysql兼容模式,nvl(null,0)结果类型为unknown的类型即为text; 第一条greatest(1,2,100,-1,0,nvl(null,0))参数中存在int和text,即按字符排序2最大; 第二条greatest(1,2,100,-1,0)参数均为int,输出按数值排序100最大; 拓...
