SQL WHERE 句の条件ロジック
SQL の WHERE
句は、データベース テーブルの行をフィルタリングするために不可欠です。 SQL は条件付き実行に IF
ステートメントを使用しますが、それらを WHERE
句内に直接埋め込むことは標準的な方法ではありません。 代わりに、CASE
ステートメントを活用するか、一部の特定のデータベース システムでは、IF
ステートメント形式を適応させます。
条件付きフィルタリングのための CASE ステートメントの利用
CASE
ステートメントは、WHERE
句に IF のようなロジックを実装するクリーンな方法を提供します。 これにより、複数の条件と関連するアクションが可能になります。 例:
<code class="language-sql">WHERE OrderNumber LIKE CASE WHEN IsNumeric(@OrderNumber) = 1 THEN @OrderNumber ELSE '%' + @OrderNumber + '%' END</code>
ここで、@OrderNumber
が数値の場合、LIKE
句は完全一致を実行します。それ以外の場合は、部分一致にワイルドカード文字 (%
) が使用されます。
データベース固有の IF ステートメントのバリエーション
特定のデータベース システム (Microsoft SQL Server など) では、IF
句内の WHERE
ステートメントのバリエーションが提供されますが、構文は標準の IF
ステートメントとは異なります。 多くの場合、構造は次のようになります:
<code class="language-sql">IF <condition> <true_statement> ELSE <false_statement></code>
この適応された WHERE
構造を使用した IF
句の例は次のようになります。
<code class="language-sql">WHERE IF IsNumeric(@OrderNumber) = 1 OrderNumber = @OrderNumber ELSE OrderNumber LIKE '%' + @OrderNumber + '%'</code>
重要な注意事項: この IF
構文は広くサポートされているわけではありません。 実装前にデータベース システムのドキュメントを参照して互換性を確認してください。 CASE
ステートメントは、さまざまな SQL データベース間での幅広い互換性を提供します。
以上がSQL の WHERE 句で IF のようなロジックを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。