• ベストアンサー

SQL文中の論理演算式の優先順位

来週、初級シスアドの試験を受ける者です。 「何を今さら」と思われるかもしれませんが、参考書等に載っていなかったので質問します。 SELECT * FROM 表名 WHERE ○○○ OR △△△ AND □□□ 上記のSQL文でWHERE以下の論理演算式を解いていく場合の優先順位を教えて下さい。 問題集の解法では「△△△と□□□の論理積をだした後に○○○との論理和をだす」とありました。 また、「条件式の中の論理演算式の優先順位に注意しなさい」とありました。 この、優先順位を教えて下さい。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.3

SQLServerのヘルプによると、 NOT > AND > OR の順に優先順位が高いそうです。 SELECT * FROM 表名 WHERE ○○○ OR △△△ AND □□□ は SELECT * FROM 表名 WHERE ○○○ OR (△△△ AND □□□) と同じでした。(実験しました)

osafune
質問者

お礼

ARCさん、御回答ありがとうございます。 なるほど!NOTが最優先なんですね。 ORがANDより優先順位が高いというのは、なんとなく想像されたのですが、これでスッキリしました。 ありがとうございました。

その他の回答 (2)

  • Binder
  • ベストアンサー率33% (5/15)
回答No.2

#回答ではないです。。。 うわぁ・・・まいったな。 私はいつもSQLを使っているのですが、ご質問のようなSQLの書き方は御法度・厳禁なので、ふと聞かれるとわからないです・・・ (>_<) 企業では、必ず明示的に( )を付けるようにします。 数年後に他の社員が見ても、曖昧なく同じ意図が伝わるようにするためです。 もし、これがシスアドの試験問題だとしたら、本当に試験用のSQLですね。 どなたかが回答を・・・。

osafune
質問者

お礼

Binderさん、コメントありがとうございます。 この問題はシスアドの過去問ではなく、問題集の中の1問です。 しかし、表計算とSQLの問題はエンドユーザレベルではまず使わないだろうと思っていて、試験用だと割り切って勉強しています。 でも、いいんです。初級シスアドの試験は、実務の断片的な知識を、体系的に学べる有意義な機会だと思っていますから・・・

noname#9414
noname#9414
回答No.1

一応、C言語の演算子の優先順位を書いた ページですが、ほかの言語でも通用する はずです。 ではでは☆

参考URL:
http://issoft5.is.noda.sut.ac.jp/mmd/cai/html/7_1.html
osafune
質問者

補足

Kanataさん、早速の回答ありがとうございました。 御紹介いただいたHPを見に行ったのですが、どうも私には難しくて・・・ その時フト思ったんですが、「ANDは論理積だから×、ORは論理和だから+、だから×の計算を先にしてその後で+の計算をする」という、加減乗除の方法と同じ単純な事なんでしょうか?

関連するQ&A