当有记录时,此查询运行良好,但是当没有记录时 - 我希望在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;
答案 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;
您确定要阅读整张桌子吗?