ホームページ >データベース >mysql チュートリアル >MS SQLのWHERE句でIFステートメントを使用できますか?

MS SQLのWHERE句でIFステートメントを使用できますか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-11 06:49:42743ブラウズ

Can I Use IF Statements in MS SQL WHERE Clauses?

MS SQL WHERE 句での IF ステートメントの使用

MS SQL の WHERE 句に IF ステートメントを埋め込むことはできますか?たとえば、次の構文は有効ですか?

<code class="language-sql">WHERE
    IF IsNumeric(@OrderNumber) = 1
        OrderNumber = @OrderNumber
    ELSE
        OrderNumber LIKE '%' + @OrderNumber + '%'</code>

解決策:

上記の構文は無効です。 CASE ステートメントを使用して同じ機能を実現できます:

<code class="language-sql">WHERE OrderNumber LIKE
  CASE WHEN IsNumeric(@OrderNumber) = 1 THEN 
    @OrderNumber 
  ELSE
    '%' + @OrderNumber + '%'
  END</code>

ストアド プロシージャまたはその他の制御フロー構造内で IF ステートメントを使用することもできます。

<code class="language-sql">IF IsNumeric(@OrderNumber) = 1
BEGIN
    SELECT * FROM YourTable WHERE OrderNumber = @OrderNumber;
END
ELSE
BEGIN
    SELECT * FROM YourTable WHERE OrderNumber LIKE '%' + @OrderNumber + '%';
END</code>

WHERE 句内で IF ステートメントを直接使用することは許可されていないことに注意してください。 CASE ステートメントは、条件付きロジックを処理するためのより簡潔で SQL 準拠の方法を提供します。 IF ステートメントを使用する必要がある場合は、フロー ステートメントを制御できるストアド プロシージャまたはその他の環境に IF ステートメントを配置する必要があります。

以上がMS SQLのWHERE句でIFステートメントを使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。