NULL値の検索 ・列名 IS NULL ‐NULL値を別のデータに置き換える ‐ビットマップ索引を使用する 暗黙の型変換 ・CHAR列 = 1 ・VARCHAR2列 = 1 ‐比較するデータ型を列のデータ型に合わせる CHAR列 = '1' CHAR列 = TO_CHAR(1) ‐INDEXヒントを使用する(索引列にNOT NULL制約が必要) 索引列に対して、関数や算術を実施 ・VARCHAR2列||'様' = '斉藤様' ・NUMBER列 * 20 = 10000 ・substr(VARCHAR2列,1,2) = 'AB' ‐関数、演算を右辺(索引列でない方)に移動する ・VARCHAR2列 = '斉藤' ・NUMBER列 = 10000/20 ・VARCHAR2列 LIKE 'AB%' ‐関数索引を使用する(Oracle 9i以上で使用可能) [例] CREATE INDEX SUBSTR_IDX ON SUPPLIER ( SUBSTR(列名,4,6) ); ‐INDEXヒントを使用する(索引列にNOT NULL制約が必要) LIKEの中間一致、後方一致 ・列名 LIKE'%TEST%' ・列名 LIKE'%TEST' ‐INDEXヒントを使用する(索引列にNOT NULL制約が必要) !=、<>の使用(Not Equals) ・列名 != '1' ・列名 <> '1' ‐inで置き換える(可能な場合) ・列名 in ('2','3') 注)inで指定できる最大リスト数は1000個 ‐INDEXヒントを使用する(索引列にNOT NULL制約が必要)