Previous: 論理演算
Up: where句
Next: null値
Previous Page: 論理演算
いま、北海道と東北北部三県にある出版社を捜し出したいとしよう。この検索は、orを 使えば、次のように書ける。
select 出版社 , 出版地 from 出版社一覧 where 出版地 = '北海道' or 出版地 = '青森' or 出版地 = '秋田' or 出版地 = '岩手'
こうした時、SQLでは、次のようなかたちが用意されている。
select 出版社 , 出版地 from 出版社一覧 where 出版地 in ( '北海道','青森','秋田','岩手' )
ここで、コンマ(,)で区切られ、カッコでくくられた部分を、「リスト」と呼ぶ。
この形式は、例19で見たorの短縮形としてだけでなく、後で見るようにselectの内部で 再びselectを呼び出す形式でひんぱんに用いられる。詳しい説明は、後にゆずるとし て、この形式での検索(subquery サブクェリーと呼ぶ)の例を示しておこう。 次の二つの検索は、同じ結果をもたらす。
select 出版社 , 出版地 from 出版社一覧 where 出版地 in ( '青森','秋田','岩手','山形','福島','宮城' )
select 出版社 , 出版地 from 出版社一覧 where 出版地 in ( select 都道府県名 from 都道府県名一覧 where 地方 = '東北地方' )
要するに、検索
select 都道府県名 from 都道府県名一覧 where 地方 = '東北地方'
は、新しいテーブル
青森 秋田 岩手 山形 福島 宮城
を返すのだが、このテーブルが、in に続くリストの要素とみなされるのである。
maruyama@wakhok.ac.jp