oracle學習(3) -變數為null時的查詢處理
問題:
設定變數名稱為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)
設定變數名稱為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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 死鎖查詢處理Oracle
- Oracle空串與null的處理OracleNull
- Oracle死鎖查詢及處理Oracle
- mysql 查詢欄位為null或者非nullMySqlNull
- ORACLE 查詢語句處理過程(Oracle
- 求大家幫助,Jmeter 變數為 null 時,輸出的是變數名,如何不輸出變數名原樣輸出 null?JMeter變數Null
- oracle 查詢未使用繫結變數的sqlOracle變數SQL
- 大批次引數輸入查詢處理
- Mybatis底層原理學習(三):查詢結果集的處理原理MyBatis
- oracle閃回版本查詢學習Oracle
- Oracle唯一約束中NULL的處理OracleNull
- Oracle 排序中常用的NULL值處理方法Oracle排序Null
- 數字影像處理學習筆記(1)——傅立葉變換在影像處理中的應用筆記
- HyperGraphDB查詢中的變數變數
- Windows批處理學習(二)——批處理(3)薦Windows
- Oracle 高水位查詢和處理方法彙總Oracle
- python資料庫查詢返回時間為datetime型別時候的特殊處理Python資料庫型別
- Linux 學習筆記--環境變數與檔案查詢Linux筆記變數
- NULL列時,如何使得IS NULL或者IS NOT NULL可以使用索引來提高查詢效率Null索引
- C語言學習中的變參處理C語言
- DELETE TABLE資料後,查詢變慢,問題處理delete
- Oracle外來鍵約束中NULL的處理OracleNull
- SQL 查詢中的 NULL 值SQLNull
- 查詢中空值null的查理Null
- 查詢繫結變數的值變數
- mybatis註解Select查詢List,返回有物件個數,但是為nullMyBatis物件Null
- MySQL邏輯查詢處理MySql
- 查詢hadoop引數變數Hadoop變數
- SparkStreaming實時流處理學習Spark
- 查詢處理的邏輯順序
- MySQL 查詢處理 SQL查詢執行順序MySql
- 【從零開始學習Oracle資料庫】(3)函式與子查詢和連線查詢Oracle資料庫函式
- oracle學習筆記(十一) 高階查詢Oracle筆記
- 前處理器變數變數
- Oracle 單個表查詢速度極慢處理過程Oracle
- Oracle資料庫的查詢變慢了Oracle資料庫
- ORACLE 處理時間Oracle
- MySQL 中處理 Null 時要注意兩個陷阱MySqlNull