oracle學習(3) -變數為null時的查詢處理

lcq_0618發表於2014-08-04
問題:
設定變數名稱為l_somevariable, 當其值為null時,通過null = null 或者 null <> null,都不能查到值,用null is null可以查詢得到值

方法1:
故我們可以通過如下語句進行查詢

select * from t where (x = l_somevariable or (x is null and l_somevariable is null)) 

但此時,當值為null時,x上的B*樹索引不起作用。

方法2:
我們可以通過建立函式索引的方式實現:

create index t_idx on t(nvl(x, -1));

select * from t where nvl(x, -1) = nvl(l_somevariable, -1)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10712951/viewspace-1244720/,如需轉載,請註明出處,否則將追究法律責任。

相關文章