SQL COALESCE无法正常工作

时间:2016-01-13 16:24:57

标签: sql oracle coalesce

当有记录时,此查询运行良好,但是当没有记录时 - 我希望在equiptype下输出看到0 - 但它不起作用 - 任何线索......使用Oracle 11g

SELECT COALESCE(CAST(SUBSTR(LINK1,-3,3) as INTEGER), 0) equiptype
FROM SCHEMA1.TABLE1
WHERE SUBSTR(LINK1,4,4)='2016' AND SUBSTR(LINK1,10,3)='033'
ORDER BY SUBSTR(LINK1,-3,3) DESC;

1 个答案:

答案 0 :(得分:1)

如果WHERE SUBSTR(LINK1,4,4)<>'2016'和SUBSTR(LINK1,10,3)<>'033',则没有返回任何行,因此您无法获得这些结果行。你可能想要实现这样的目标:

SELECT CASE 
       WHEN SUBSTR(LINK1,4,4)='2016' AND SUBSTR(LINK1,10,3)='033'
       THEN CAST(SUBSTR(LINK1,-3,3)
       ELSE 0 END equiptype 
  FROM SCHEMA1.TABLE1
 ORDER BY 1;

您确定要阅读整张桌子吗?