如圖所示

在查詢不到16RPP11-1230>01這個合同號時。
后兩句SQL都能回傳0,可是第一句SQL回傳的卻是NULL。
查了半天資料也沒搞懂怎么回事。
請各位幫忙看看。
PS
在之前重建了下索引:create index idx_cy_batch_no on cy_coildata(cy_batch_no, 0)。
會不會和這個有關系。
uj5u.com熱心網友回復:
是挺好奇怪的。nvl(sum(),0) , 這個肯定是0 ,和這個索引沒有關系 ;
你是從程式中看到的 NULL ,還是 PLSQL 中看到的 NULL ?
uj5u.com熱心網友回復:
這個是我一個函式里的SQL,單步除錯的時候,監視串列里面顯示的就是NULL
uj5u.com熱心網友回復:
因為你回傳的記錄條數是0,監視里就給你顯示個Nulluj5u.com熱心網友回復:
因為沒有記錄,顯示的是空記錄,而不是有結果,結果為空,這是兩個概念。你改成count測驗,顯示的就是0了。
uj5u.com熱心網友回復:
沒有記錄也是 0SQL> select sum(comm) from emp where empno=7369;
SUM(COMM)
----------
SQL> select nvl(sum(comm),0) from emp where empno=7369;
NVL(SUM(COMM),0)
----------------
0
SQL> select * from emp where empno=7368;
未選定行
SQL> select nvl(sum(comm),0) from emp where empno=7368;
NVL(SUM(COMM),0)
----------------
0
uj5u.com熱心網友回復:
如果是空的話,第一條改成這樣試試nvl(sum(cy_coil_weight_act)/1000,0)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/110576.html
標籤:開發
上一篇:oracle原創視頻分享!!!
下一篇:唯一性約束問題咨詢
