刚接触DB2,不太熟悉,修改一句时有点问题,望大神指教...
在xml配置文件里面,有大概这么一句语法,运行起来会报错SQLSTATE=42803
SELECT CASE WHEN B.COLUMN_A IS NOT NULL THEN B.COLUMN_B
WHEN K.COLUMN IS NULL THEN 0
WHEN J.COLUMN IS NULL THEN -1 <!--此处加上就会报错 -->
ELSE -2
END COLUMN_B
FROM TABLE_A A
LEFT JOIN TABLE_B B ON <!--此处省略关联 -->
LEFT JOIN TABLE_K K ON <!--此处省略关联 -->
LEFT JOIN TABLE_J J ON <!--此处省略关联 -->
WHERE <!--此处省略条件 -->
奇怪的是,直接将语句扔到Toad for DB2中执行没有任何问题 ,但是在xml中调用会出错,但删除WHEN J.COLUMN IS NULL THEN 0 这句这运行正常,好像xml中的case when then中不能有三个不同表的意思
另外,使用的是struts1 +ibatis ,有点古老。
求指点,这个问题真有点抓狂,明明能执行的语句偏偏配置在xml中不能运行
------解决方案--------------------
提示什么,用COALESCE 函数试试