SQL语句适配问题
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【GBase版本】:
【操作系统】:
【CPU】:
【问题描述】*:SELECT
NVL(t2.deptName,#{deptName}) as deptName,NVL(t2.YEAR,t1.YEAR) as year,NVL(t2.month,t1.month) as month,
NVL(t2.dataType,#{dataType}) as dataType,NVL(t2.status,'-1') as status,'2' as type
FROM (
SELECT sda.DICT_VALUE as YEAR,sda1.DICT_VALUE as month FROM SYS_DICT_DATA sda
LEFT JOIN SYS_DICT_DATA sda1 ON 1=1 AND sda1.DICT_TYPE = 'submitted_month' AND sda1.DICT_VALUE = #{month}
WHERE sda.DICT_TYPE = 'submitted_year' AND sda.DICT_VALUE = #{year}
)t1 LEFT JOIN (
SELECT
sd.DEPT_NAME as deptName,ars.YEAR,ars.month,ars.data_type as dataType,ars.STATUS as status,'2' as type
FROM SYS_DEPT sd
LEFT JOIN AK_REGION_SUMMARY ars ON ars.DEPT_ID = sd.DEPT_ID AND ars.DEL_FLAG = '0'
WHERE ars.DEPT_ID = #{deptId} AND ars.data_type = #{dataType} AND ars.YEAR = #{year} AND ars.MONTH = #{month}
)t2 ON t1.YEAR = t2.YEAR AND t1.MONTH = t2.month
WHERE (t2.status NOT IN ('1','2','3','4') OR t2.status IS NULL )
目前发现问题出在 第二、三行的参数那块NVL(t2.deptName,#{deptName}) as deptName,NVL(t2.dataType,#{dataType}) as dataTyp,但是不知道在南大数据库怎么适配修改,跪求大佬。
评论


可使用NVL2函数(NVL2(expr, result1, result2) )代替,NVL2(t2.dataType,t2.dataType,#{deptName})
或者DECODE、CASE等写法。
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25052
- 42023-09-25浏览数:18521
- 52020-05-11浏览数:17526