[解決済み】SQLロジックの演算子の優先順位。AndとOr
2022-04-12 23:52:06
質問
次の2つの文は等価か?
SELECT [...]
FROM [...]
WHERE some_col in (1,2,3,4,5) AND some_other_expr
そして
SELECT [...]
FROM [...]
WHERE some_col in (1,2,3) or some_col in (4,5) AND some_other_expr
これを検証するための真理値表みたいなものはないのでしょうか?
どのように解決するのですか?
And
が優先されます。
Or
であれば、たとえ
a <=> a1 Or a2
Where a And b
は
Where a1 Or a2 And b,
として実行されるからです。
Where a1 Or (a2 And b)
で、これらを同じにするには、次のようにします(括弧を使って優先順位の規則を上書きします)。
Where (a1 Or a2) And b
以下は説明のための例です。
Declare @x tinyInt = 1
Declare @y tinyInt = 0
Declare @z tinyInt = 0
Select Case When @x=1 OR @y=1 And @z=1 Then 'T' Else 'F' End -- outputs T
Select Case When (@x=1 OR @y=1) And @z=1 Then 'T' Else 'F' End -- outputs F
参考文献を調べたい方へ(アルファベット順)。
関連
-
[解決済み】SQL ServerでIdentityカラムを更新する方法は?
-
[解決済み】単一のクエリで加重平均を計算する
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] ...値に挿入する ( SELECT ... FROM ... )
-
[解決済み] SQLのIN句をパラメータ化する
-
[解決済み] INNER JOINよりもCROSS APPLYを使用すべきなのはどのような場合ですか?
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ストアドプロシージャーのエラー ORA-06550
-
[解決済み】Excelに合体的な関数はありますか?
-
[解決済み】テキストが切り捨てられた、または1つ以上の文字がターゲットコードページで一致しない アンピボットの主キーを含む
-
[解決済み】BULK INSERTで「予期せぬファイルの終了」エラーが発生したROWを特定する?
-
[解決済み】単一のクエリで加重平均を計算する
-
[解決済み] アンピボットの主キーを含む対象コードページで、テキストが切り捨てられたか、1つ以上の文字が一致しない。
-
[解決済み] Presto SQL ピボッティング(言葉は悪いですが)データ
-
[解決済み] SQLエラーです。ORA-00922: オプションがないか無効です。
-
[解決済み] SQLです。最初の出現箇所のみを返す
-
[解決済み] ORA-01821: ISO 8601 のローカルタイム付き日付のフォーマットが認識されないエラー