初級シスアドSQL過去問題解説

解答:ウ

SELECT文の問題というより論理演算の問題である。基礎的な論理演算を理解していれば容易に解答が得られる。問題文より抽出条件をまとめると以下の表のようになる。なお表は、平均点以上を“○、平均点未満を“×”、抽出される場合を“○”、抽出されない場合を“×”で表記している。

表からAとBの排他的論理和(以下、EOR)であることが分かる。したがって、解答群より排他的論理和の式を探せばよい。

抽出条件
AB抽出
×
×
×
×××

この解き方はEORの論理式を覚えておかなくてはならない。

しかし、排他的論理和の論理式を覚えていなくてもこの問題は解くことができる。

まず、条件式を単純にするためにA・BをX、A+BをYとして解答群のWHERE句の条件式を表すと以下のようになる。

スポンサードリンク

  • ア X AND NOT(X)
  • イ X AND NOT(Y)
  • ウ Y OR NOT(X)
  • エ Y AND NOT(Y)

アとエの論理積(以下、AND)と否定論理積(NAND)のANDは常に0である。また、イのANDと否定論理和(以下、NOR)のANDも常に0である。したがって、何も抽出されない。残るのはエである。

EORは、入力値が違うとき1を出力する。それ以外(入力値が同じとき)は、0を出力する。AとBのEOR論理式は次のとおりである。

排他的論理和の論理式
(A+B)・(A・B) または A・B+A・B

スポンサードリンク

近年、初級シスアドでは論理演算単独の問題は出題されていない。だからといって論理演算を覚えなくてよいということではない。この問題のように論理演算の基礎的な知識は持っているという前提で出題されているからだ。論理演算は表計算やSQLでは必須の知識であるから確実にマスターしておかなければならないテーマである。

関連ページ
初級シスアド講座 論理演算