是因為沒有找到數據!
NVL()函數的使用需要在數據存在的前提下才能達到預期的結果
建議在數據提取時先進行數據存在的判斷
我一般這麼做:
SELECT COUNT(*) INTO I
FROM TABLE1,TABLE2.....
WHERE .....
AND .....
... ;
IF I > O THEN
SELECT NVL(....) INTO XXXX
FROM ....
WHERE ....;
ELSIF I = 0 THEN
XXXX:=0;
END IF;
.......
NVL()函數的使用需要在數據存在的前提下才能達到預期的結果
建議在數據提取時先進行數據存在的判斷
我一般這麼做:
SELECT COUNT(*) INTO I
FROM TABLE1,TABLE2.....
WHERE .....
AND .....
... ;
IF I > O THEN
SELECT NVL(....) INTO XXXX
FROM ....
WHERE ....;
ELSIF I = 0 THEN
XXXX:=0;
END IF;
.......
group by、d.DID=a.DID(+) 等方式,不知道是否有影响?"
--没影响.
NVL(fld,0)中,你的fld可能是空格(space)
select nvl(sum(fld),0) from table1;