0

私はこの質問を読んでいました 論理演算子 OR AND in condition and order of condition in WHERE

しかし、私はこの質問を拡張したいと思います。

質問1 :

IF (CONDITION 1) OR (CONDITION 2)

私は話しているのではありませんIf CONDITION 1 is TRUE, will CONDITION 2 be checked

condition 2しかし - SQL が最初のフレーズではなく (2 番目のフレーズ) に基づいて行を選択する可能性はありcondition 1ますか?

例えば ​​:

columnA      columnB
  2              2

select * from table where id=columnA or id=columnB

さて、最初に評価されたので、行を取得した可能性はありますか id=columnB

質問2 :

この質問はWhere条項について話します。Join はどうですか?これらの役割も適用されますか

select * from Table1 join Table2 on Table1.id=Table2.id or Table1.aa = Table2.aa

  • CONDITION 1 が TRUE の場合、CONDITION 2 はチェックされますか?
  • 最初のフレーズではcondition 2なく、(これは 2 番目のフレーズです) に基づいて SQL が行を生成する可能性はありますか?condition 1
4

1 に答える 1

2

行を生成することについて尋ねるあなたの質問の部分を理解していないので、これまでに答えることができる唯一の部分は次のとおりです。

CONDITION 1がTRUEの場合、CONDITION 2がチェックされますか

場合によります。そうかもしれないし、そうでないかもしれない。SQL ステートメントのどの部分についても、短絡または評価順序の保証はありません。

于 2013-02-12T09:41:50.757 に答える