0. 実験ユーザー「dicdic」でコネクトする。
SQL> conn dicdic/Oracle11g
接続されました。
SQL>
|
1. 化学科と応用化学科で学部を越えた女子の集会を行うことになった。その名簿を作成するためのSQLを考える。
2. 化学科(1293)または(or)応用化学科(2187)で女子(1)だから...。
あれ? 男もヒットしてるぞ。どういうこと?
この結果をよく見ると、応用化学科(2187)だけは女子だけを抽出できている。
ということは、AND条件はORの前方にはかかっていないということだ。
SQL> SELECT 氏名,学科コード,性別 FROM TT01_学生 WHERE 学科コード = 1293 OR 学科コード = 2187 AND 性別 = 1 order by 学科コード;
氏名 学科コード 性別
---------------------------------------- ---------- ----------
岩谷 彦太郎 1293 2
下川 里沙 1293 1
芳賀 一司 1293 2
米沢 安男 1293 2
・
・
・
会田 翔子 2187 1
秋元 優衣 2187 1
中村 音々 2187 1
妹尾 千佳 2187 1
287行が選択されました。
SQL>
|
3. できた。でも、こんなことしないといけないの? 面倒くさいなぁ。
SQL> SELECT 氏名,学科コード,性別 FROM TT01_学生 WHERE 学科コード = 1293 AND 性別 = 1 OR 学科コード = 2187 AND 性別 = 1 order by 学科コード;
氏名 学科コード 性別
---------------------------------------- ---------- ----------
下川 里沙 1293 1
長浜 舞花 1293 1
本村 千晶 1293 1
湯川 有紀 1293 1
・
・
・
会田 翔子 2187 1
秋元 優衣 2187 1
中村 音々 2187 1
妹尾 千佳 2187 1
135行が選択されました。
SQL>
|
4. なるほどね。下のように括弧でくくれば、性別の条件を1度書くだけで済む。
SQL> SELECT 氏名,学科コード,性別 FROM TT01_学生 WHERE (学科コード = 1293 OR 学科コード = 2187) AND 性別 = 1 order by 学科コード;
氏名 学科コード 性別
---------------------------------------- ---------- ----------
下川 里沙 1293 1
長浜 舞花 1293 1
本村 千晶 1293 1
湯川 有紀 1293 1
・
・
・
会田 翔子 2187 1
秋元 優衣 2187 1
中村 音々 2187 1
妹尾 千佳 2187 1
135行が選択されました。
SQL>
|
© 2011-2011 Amateur Laboratory of ORACLE
|