Home実験室 − No.0033


        No.0033(SQL)
        Where句についての追加実験(IN、NOT IN)

■環境
  □OS: Windows XP Professional SP3
  □Oracle: Oracle Database 11g R2 (Standard)
  □OSログインユーザ: ORA_DBAグループ
  □Oracleユーザ: dicdic(実験用ユーザー) → 実験環境構築スクリプト

■実験
  0. 実験ユーザー「dicdic」でコネクトする。

SQL> conn dicdic/Oracle11g 接続されました。 SQL>



  1. 【■か、▲か、●か.....】下のように、where句で条件をorでつなげて列挙しまくるのは結構億劫です。
     (下の例は休職者、退職者の一覧)

SQL> SELECT 氏名,在籍区分コード FROM TT01_学生 WHERE 在籍区分コード = 06 OR 在籍区分コード = 07 OR 在籍区分コード = 08 OR 在籍区分コード = 09; 氏名 在 ---------------------------------------- -- 下川 里沙 06 大槻 安子 06 大庭 千晴 08 神山 道雄 06 小堀 康男 09 飛田 幸男 06 福沢 隆明 08 砂川 珠希 08 竹内 弥生 09 黒川 明宏 09 35行が選択されました。 SQL>



  2. 【■か、▲か、●か.....】IN句を使うと、(これか、これか.....)がササッと書けます。

SQL> SELECT 氏名,在籍区分コード FROM TT01_学生 WHERE 在籍区分コード IN (06,07,08,09); 氏名 在 ---------------------------------------- -- 下川 里沙 06 大槻 安子 06 大庭 千晴 08 神山 道雄 06 福沢 隆明 08 砂川 珠希 08 竹内 弥生 09 黒川 明宏 09 35行が選択されました。 SQL>



  3. 【■でなく、▲でもなく、●でもなく.....】NOT条件も、下のように、where句で条件をANDでつなげて列挙しまくるのはかなり億劫です。      (下の例は学部生以外の学生の一覧)

SQL> SELECT 氏名,在籍区分コード FROM TT01_学生 WHERE 在籍区分コード != 71 AND 在籍区分コード != 72 AND 在籍区分コード != 73 AND 在籍区分コード != 74; 氏名 在 ---------------------------------------- -- 下川 里沙 06 大畑 花歩 03 井上 成康 03 森脇 秀夫 03 ・ ・ ・ 平原 真理雄 02 山内 舞衣 02 荒木 辰二 02 黒川 明宏 09 232行が選択されました。 SQL>



  4. 【■でなく、▲でもなく、●でもなく.....】これも、IN句を使うと、(これでなく、これでもなく.....)がササッと書けます。

SQL> SELECT 氏名,在籍区分コード FROM TT01_学生 WHERE 在籍区分コード NOT IN (71,72,73,74); 氏名 在 ---------------------------------------- -- 下川 里沙 06 大畑 花歩 03 井上 成康 03 森脇 秀夫 03 平原 真理雄 02 山内 舞衣 02 荒木 辰二 02 黒川 明宏 09 232行が選択されました。 SQL>



    【PR】    Oracle実験室監修  『Oracleアーキテクチャ鳥瞰図』 PDF  (Oracleのアーキテクチャを一目で俯瞰できるイラスト)  


Home実験室 − No.0033

© 2011-2011   Amateur Laboratory of ORACLE
inserted by FC2 system