Previous: 論理演算
Up: where句
Next: null値
Previous Page: 論理演算

リスト

いま、北海道と東北北部三県にある出版社を捜し出したいとしよう。この検索は、orを 使えば、次のように書ける。

例 18: 北海道、青森、秋田、岩手の出版社を検索

select 出版社 , 出版地
	from   出版社一覧
	where  出版地 = '北海道' or 出版地 = '青森' or 
               出版地 = '秋田'  or 出版地 = '岩手'

こうした時、SQLでは、次のようなかたちが用意されている。

例 19: 北海道、青森、秋田、岩手の出版社を検索2

select 出版社 , 出版地
	from   出版社一覧
	where  出版地 in ( '北海道','青森','秋田','岩手' )

ここで、コンマ(,)で区切られ、カッコでくくられた部分を、「リスト」と呼ぶ。

この形式は、例19で見たorの短縮形としてだけでなく、後で見るようにselectの内部で 再びselectを呼び出す形式でひんぱんに用いられる。詳しい説明は、後にゆずるとし て、この形式での検索(subquery サブクェリーと呼ぶ)の例を示しておこう。 次の二つの検索は、同じ結果をもたらす。

例 20: 東北六県の出版社を検索

select 出版社 , 出版地
	from   出版社一覧
	where  出版地 in ( '青森','秋田','岩手','山形','福島','宮城' )

例 21: サブ・クェリー版

select 出版社 , 出版地
	from   出版社一覧
	where  出版地 in ( select 都道府県名
			  from   都道府県名一覧
			  where  地方 = '東北地方' )

要するに、検索

select 都道府県名
	from   都道府県名一覧
	where  地方 = '東北地方' 

は、新しいテーブル

青森
	秋田
	岩手
	山形
	福島
	宮城

を返すのだが、このテーブルが、in に続くリストの要素とみなされるのである。

maruyama@wakhok.ac.jp
1995年02月10日 (金) 00時49分16秒 JST